我一直在使用ES 5.x版本,这是我的示例数据集json。
{"id":"1"}
{.... "company" : "HCL-US",....}
{"id":"2"}
{.... "company" : "HCL",....}
{"id":"3"}
{.... "company" : "HCL-IND",....}
{"id":"4"}
{.... "company" : "HCL-AUS",....}
我如何搜索和获取属于“ HCL-US”的人。我尝试使用此查询“ _search?q = company:” HCL-US“”,它返回的是HCL *结果。如何将确切的字符串与特殊字符串匹配。
答案 0 :(得分:1)
1 /您可以在映射company
中指定whitespace analyzer。该分析器仅在空白处拆分查询,而标准将在非字母数字字符处拆分查询。
标准分析仪是未定义分析仪时使用的分析仪。
2 /或者您可以在company.keyword
上查询,该字段是自5.X开始为文本字段自动创建的字段。此关键字没有经过分析,您可以放心使用术语查询来进行完全匹配。
答案 1 :(得分:1)
您可以使用与确切术语匹配的Term Query
。假设company
是一个text
字段,您将获得相同版本的keyword
,下面的查询应该可以完成
{
"query": {
"term": {
"company.keyword": {
"value": "HCL-US"
}
}
}
}