为什么第一个陈述给我一些结果,但第二个没有?
我尝试了很多组合,但我不知道问题可能是什么。当然," 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
答案 0 :(得分:6)
term
查询不会分析搜索字词,match
查询使用与用于索引字段的搜索相同的分析器。因此,如果您使用默认分析器(标准分析器)来索引p.typeName
,则索引术语为“登录”(标准分析器分为白色案例和小写术语),因为您的搜索术语“登录”已混合case它与Term查询不匹配。
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-term-query.html