Jac*_*cob 4 c# elasticsearch nest
在我今天的代码中,我正在进行如下搜索:
.Query(q => q.QueryString(qs => qs.Query(searchQuery).OnFieldsWithBoost(f => f.Add(b => b.MetaTitle, 5).Add(b => b.RawText, 1))))
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我搜索一个类似的短语,这给了我一个非常广泛的搜索."艳阳高照".我尝试在RawText上使用MatchPhrase而不是QueryString,这种方法有用.
问题是我仍然想要在MetaTitle和RawText中搜索并使用我正在使用的提升.
我不知道Nest,但你想要做的是使用短语类型的多匹配查询,并增加字段.
对g**gle的快速搜索为我提供了类似这样的语法:
.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")
)
)
Run Code Online (Sandbox Code Playgroud)
API必须具有某种type参数才能将phrase类型添加到此.
编辑:在快速查看源代码后,我找到了一个Type方法,上面添加了.
| 归档时间: |
|
| 查看次数: |
1910 次 |
| 最近记录: |