【问题标题】:NEST (elasticsearch) Highlighting in multiple fieldsNEST(elasticsearch)在多个字段中突出显示
【发布时间】:2013-08-24 01:28:36
【问题描述】:

我已经使用 Nest 成功获得了结果和高亮显示,但如果我包含两个用于搜索高亮显示的字段,它只会使用最后一个字段来构建弹性搜索查询。例如以下

.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 做到这一点吗?我做错了吗?

【问题讨论】:

    标签: elasticsearch nest


    【解决方案1】:

    还可以突出显示所有查询的字段。

     .Highlight(h => h
                .Fields(f => f.Field("*"))
    

    【讨论】:

      【解决方案2】:

      每个突出显示的字段都需要一个单独的“.OnField”。

      .Highlight(h => h
          .PreTags("<b>")
          .PostTags("</b>")
          .OnFields(
              f => f.OnField("Title"),
              f => f.OnField("Summary")
          )
      )
      

      见另一个例子here

      【讨论】:

        猜你喜欢
        • 2015-03-30
        • 2018-04-12
        • 1970-01-01
        • 2013-05-22
        • 2013-08-13
        • 2014-10-23
        • 2015-11-06
        • 1970-01-01
        • 2018-01-06
        相关资源
        最近更新 更多