我已经使用Nest成功地获得了结果和突出显示,但是如果我在其中搜索突出显示的两个字段中都仅使用了Elasticsearch查询的最后一个字段。例如以下
.Query(qry => qry .QueryString(qs => qs .Query(qString) ) ) .Highlight(h => h .PreTags("<b>") .PostTags("</b>") .OnFields(f => f .OnField("Title") .OnField("Summary") ) )
表示我只能从“摘要”字段中获得突出显示。如果我直接使用等效查询查询elasticsearch,则可以从两个字段中检索突出显示。例如
{ "query": { "query_string": { "query": "apple" } }, "highlight": { "pre_tags": ["<b>"], "post_tags": ["</b>"], "fields": { "Title": {}, "Summary": {} } } }
Nest有可能做到这一点吗?难道我做错了什么?
每个突出显示的字段都需要一个单独的“ .OnField”。
.Highlight(h => h .PreTags("<b>") .PostTags("</b>") .OnFields( f => f.OnField("Title"), f => f.OnField("Summary") ) )
在这里查看另一个示例。