我们是弹性搜索和 NEST 的新手。
我们正在尝试使用 C# 客户端 - NEST 进行区分大小写的搜索。我们已经阅读了很多帖子,但无法弄清楚。有人可以通过详细的分步说明来取悦我们。
任何帮助将不胜感激。
谢谢,VB。
我们是弹性搜索和 NEST 的新手。
我们正在尝试使用 C# 客户端 - NEST 进行区分大小写的搜索。我们已经阅读了很多帖子,但无法弄清楚。有人可以通过详细的分步说明来取悦我们。
任何帮助将不胜感激。
谢谢,VB。
我知道这是一个较老的问题,但我在研究中遇到了它。所以,这是我的答案。
首先,切换到 TERM 查询没有帮助。在了解了有关 ElasticSearch 默认工作原理的更多信息后,我明白了原因。
默认情况下,ElasticSearch不区分大小写。当文档被索引时,默认分析器将所有字符串值小写并保留小写值以供将来搜索。这不会影响存储在文档本身中的值,但小写确实会影响搜索。
如果您使用默认分析器,则字符串值的搜索词应全部小写。
在了解其工作原理之前,我花了相当多的时间查看索引文档中的混合大小写字段值,然后使用使用相同混合大小写值的查询词进行搜索。零结果。直到我强制我的查询使用的值全部小写,我才开始得到结果。
您可以在此处阅读有关 ElasticSearch 分析器的更多信息: ElasticSearch - 分析
尝试 TERM 查询,是否不分析传递给 TERM 查询的值,因此 ES 不会将您的输入设为小写。
这里:http ://www.elasticsearch.org/guide/reference/query-dsl/term-query/