2

我们是弹性搜索和 NEST 的新手。

我们正在尝试使用 C# 客户端 - NEST 进行区分大小写的搜索。我们已经阅读了很多帖子,但无法弄清楚。有人可以通过详细的分步说明来取悦我们。

任何帮助将不胜感激。

谢谢,VB。

4

2 回答 2

6

我知道这是一个较老的问题,但我在研究中遇到了它。所以,这是我的答案。

首先,切换到 TERM 查询没有帮助。在了解了有关 ElasticSearch 默认工作原理的更多信息后,我明白了原因。

默认情况下,ElasticSearch不区分大小写。当文档被索引时,默认分析器将所有字符串值小写并保留小写值以供将来搜索。这不会影响存储在文档本身中的值,但小写确实会影响搜索。

如果您使用默认分析器,则字符串值的搜索词应全部小写。

在了解其工作原理之前,我花了相当多的时间查看索引文档中的混合大小写字段值,然后使用使用相同混合大小写值的查询词进行搜索。零结果。直到我强制我的查询使用的值全部小写,我才开始得到结果。

您可以在此处阅读有关 ElasticSearch 分析器的更多信息: ElasticSearch - 分析

于 2014-12-24T16:17:02.740 回答
0

尝试 TERM 查询,是否不分析传递给 TERM 查询的值,因此 ES 不会将您的输入设为小写。

这里:http ://www.elasticsearch.org/guide/reference/query-dsl/term-query/

于 2013-08-17T18:22:57.723 回答