如果您不关心区分大小写,只需使用
term
查询:
{
"query": {
"term": {
"cities.keyword": "Paris Zurich"
}
}
}
它将只匹配字段的精确值。
另一方面,您可以创建自定义分析器,它仍然存储字段的确切值(就像
keyword
)有一个例外:存储的值将被转换为小写,这样您就可以找到
Paris Zurich
以及
paris Zurich
. 示例如下:
{
"settings": {
"analysis": {
"analyzer": {
"lowercase_analyzer": {
"type": "custom",
"tokenizer": "keyword",
"char_filter": [],
"filter": ["lowercase"]
}
}
}
},
"mappings": {
"doc": {
"properties": {
"cities": {
"type": "text",
"fields": {
"lowercased": {
"type": "text",
"analyzer": "lowercase_analyzer"
}
}
}
}
}
}
}
{
"query": {
"term": {
"cities.lowercased": "paris zurich" // Query string should also be in lowercase
}
}
}