我们是 flex 搜索和NEST的新手。

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

任何帮助将不胜感激。

谢谢,
VB。

最佳答案

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

首先,切换到TERM查询没有帮助。了解更多有关ElasticSearch默认工作方式的信息后,我了解了为什么。

默认情况下,ElasticSearch是不区分大小写的。对文档建立索引后,默认的分析器将所有字符串值都转换为小写,并保留小写字母的值以供将来搜索。这不会影响存储在文档本身中的值,但是小写的确会影响搜索。

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

在我了解这是如何工作之前,我花了大量时间查看索引文档中的混合大小写字段值,然后使用使用相同混合大小写值的查询词进行搜索。零结果。直到我将查询所使用的值全部强制为小写之后,我才开始获得结果。

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

10-07 12:30
查看更多