我在索引文档中有一个字段,需要区分大小写地进行搜索。我正在使用匹配查询来获取结果。我的数据文件的一个示例是:
{ "name" : "binoy", "age" : 26, "country": "India" }
现在,当我给出以下查询时:
{ “query” : { “match” : { “name” : “Binoy" } } }
它给了我“ binoy”和“ Binoy”的匹配。我希望搜索区分大小写。缺省情况下,elasticsearch似乎不区分大小写。如何在Elasticsearch中使搜索区分大小写?
在映射中,您可以将字段定义为not_analyzed。
curl -X PUT "http://localhost:9200/sample" -d '{ "index": { "number_of_shards": 1, "number_of_replicas": 1 } }' echo curl -X PUT "http://localhost:9200/sample/data/_mapping" -d '{ "data": { "properties": { "name": { "type": "string", "index": "not_analyzed" } } } }'
现在,如果您可以进行普通索引和普通搜索,它就不会对其进行分析并确保其提供不区分大小写的搜索。