NEST(elasticsearch)在多个领域突出显示

cee*_*eej 5 elasticsearch nest

我已经使用Nest成功获得了结果和重点,但是如果我包含两个要搜索高亮的字段,它只使用构造elasticsearch查询的最后一个字段.例如以下

.Query(qry => qry
    .QueryString(qs => qs
        .Query(qString)
    )
)
.Highlight(h => h
    .PreTags("<b>")
    .PostTags("</b>")
    .OnFields(f => f
        .OnField("Title")
        .OnField("Summary")
    )
)
Run Code Online (Sandbox Code Playgroud)

意味着我只获得从"摘要"字段返回的高亮显示.如果我使用等效查询直接查询elasticsearch,我可以从两个字段中检索突出显示.例如

{
  "query": {
    "query_string": {
      "query": "apple"
    }
  },
  "highlight": {
    "pre_tags": ["<b>"],
    "post_tags": ["</b>"],
    "fields": {
      "Title": {},
      "Summary": {}
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

有可能用Nest做到这一点吗?难道我做错了什么?

Sco*_*ice 8

每个突出显示的字段都需要单独的".OnField".

.Highlight(h => h
    .PreTags("<b>")
    .PostTags("</b>")
    .OnFields(
        f => f.OnField("Title"),
        f => f.OnField("Summary")
    )
)
Run Code Online (Sandbox Code Playgroud)

在这里看另一个例子.