ElasticSearch / NEST /没有带有“Term”但带有“Match”的结果

时间:2015-02-01 11:54:26

标签: elasticsearch nest

为什么第一个陈述给我一些结果,但第二个没有?

我尝试了很多组合,但我不知道问题可能是什么。当然," Term" -Approach将是我的首选。

 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

1 个答案:

答案 0 :(得分:6)

term查询不会分析搜索字词,match查询使用与用于索引字段的搜索相同的分析器。因此,如果您使用默认分析器(标准分析器)来索引p.typeName,则索引术语为“登录”(标准分析器分为白色案例和小写术语),因为您的搜索术语“登录”已混合case它与Term查询不匹配。

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