elasticsearch - NEST(elasticsearch)多字段高亮

标签 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")
    )
)

意味着我只得到从“摘要”字段返回的亮点。如果我直接使用等效查询查询 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")
    )
)

看另一个例子here .

关于elasticsearch - NEST(elasticsearch)多字段高亮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18361433/

相关文章:

elasticsearch - 使用流利的我想添加机器的IP地址以及消息

elasticsearch - 如何在ElasticSearch中从父子获取子记录?

elasticsearch - ElasticSearch Nest:具有DynamicTemplates的AutoMap

c# - Nest:索引 PDF,接收状态代码 400, "No Content Provided"

c# - 使用 NEST 使用 linq 查询 Elasticsearch

elasticsearch - 在elasticsearch中使用MinimumShouldMatch和术语查询

parent-child - Elasticsearch 与父子文件的问题

scala - Spark + ElasticSearch 返回 RDD[(String, Map[String, Any])]。我怎样才能操纵Any?

elasticsearch - Grafana中如何用Prometheus数据源监控elasticsearch

elasticsearch - 使用Elasticsearch NEST Api的按位运算