假设我有3个文档:
{ "cities": "Paris Zurich Milan" }
{ "cities": "Paris Zurich" }
{ "cities": "Zurich"}
cities
只是文本,我没有使用任何自定义分析器。
我要查询在巴黎和苏黎世都在cities
中的文档,并且该文档没有其他城市。所以我只想获取第二个文档。
这是我到目前为止正在尝试的:
{
"query": {
"match_phrase": {
"cities": "Paris Zurich"
}
}
}
但这也会返回第一个文档。 我该怎么办?
答案 0 :(得分:1)
如果您不关心区分大小写,只需使用term
查询:
{
"query": {
"term": {
"cities.keyword": "Paris Zurich"
}
}
}
它将仅匹配字段的确切值。
另一方面,您可以创建自定义分析器,该分析器仍将存储字段的准确值(就像keyword
一样):一个例外:存储的值将转换为小写字母,因此您可以找到{ {1}}和Paris Zurich
。这是示例:
paris Zurich