在今天的代码中,我正在执行以下搜索:
.Query(q => q.QueryString(qs => qs.Query(searchQuery).OnFieldsWithBoost(f => f.Add(b => b.MetaTitle, 5).Add(b => b.RawText, 1))))
我的问题是,如果我搜索类似的短语,这将使我进行非常广泛的搜索。“太阳普照”。我试过在RawText而不是QueryString上使用MatchPhrase,这有点奏效。
问题是我仍然想同时在MetaTitle和RawText中进行搜索,并随着我现在使用的增强功能进行搜索。
我不知道Nest,但是您想要做的是使用具有字段boost 的短语类型的多匹配查询。
在g ** gle上进行的快速搜索为boost部分提供了如下语法:
.Query(q => q .MultiMatch(m => m .OnFieldsWithBoost(b => b .Add(o => o.MyField, 2.0) .Add(o => o.AnotherField, 3.0) ) .Type(TextQueryType.Phrase) .Query("my query text") ) )
API必须具有某种类型的type参数才能向其中添加phrase类型。
type
phrase
编辑 :快速浏览源代码后,我发现了上面添加的Type方法。