NEST elasticsearch -C# - 区分大小写的搜索

时间:2013-06-27 20:43:23

标签: c#-4.0 elasticsearch case-sensitive nest

我们不熟悉弹性搜索和NEST。

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

任何帮助都将受到高度赞赏。

谢谢, VB。

2 个答案:

答案 0 :(得分:5)

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

首先,切换到TERM查询没有帮助。在了解了ElasticSearch默认情况下的工作原理后,我明白了原因。

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

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

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

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

答案 1 :(得分:0)

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

此处:http://www.elasticsearch.org/guide/reference/query-dsl/term-query/