ElasticSearch/NEST/No results with "Term"但 "Match"

标签 elasticsearch nest

为什么第一个语句会给我一些结果,而第二个语句却没有?

我尝试了很多组合,但我不知道问题出在哪里。当然,“术语”方法是我的首选方法。

 var matchPhrase = _client.Search<JournalItem>(s => s
            .Index("journal")
            .Query(q => q.Match(m => m.OnField("typeName")
                 .Query("Logon"))));


var searchResults = _client.Search<JournalItem>(s => s
            .Index("journal")
            .Query(q => q
                .Term(p => p.typeName, "Logon")
            ));

我正在使用 NEST 1.4 和 elasticsearch 1.4.2

最佳答案

term 查询不分析搜索词,match 查询使用与索引字段相同的分析器进行搜索。因此,如果您使用默认分析器(标准分析器)对 p.typeName 进行索引,则索引词是“登录”(标准分析器将术语分为白色和小写),作为您的搜索词“Logon”大小写混合,与 Term 查询不匹配。

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-term-query.html

关于ElasticSearch/NEST/No results with "Term"但 "Match",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28262397/

相关文章:

elasticsearch - Nest筛选功能分数

html - Elasticsearch原始HTML文档搜索

elasticsearch - 如何使用NEST搜索默认索引?

docker - 使用 NEST 访问 Elasticsearch Docker 实例

elasticsearch - 如何将日志中的时间设置为elasticsearch中的主要@timestamp

ElasticSearch 在从地理点创建的圆圈内搜索地理点

c# - Nest Elasticsearch 的文档术语频率

c# - 为什么NEST ElasticClient找不到文档?

c# - ElasticSearch.net与查询的嵌套匹配不起作用

elasticsearch - 仅针对具有过滤器的排序查询结果聚合脚本,而不是完整数据集