一尘不染

ElasticSearch:突出显示词组查询中的每个单词

elasticsearch

如何获得Elastic Search仅突出显示导致文档退回的单词?

我有以下索引

{
  "mappings": {
    "document": {
      "properties": {
        "content": {
          "type": "string",
          "fields": {
            "english": {
              "type": "string",
              "analyzer": "english"
            }
          }
        }
      }
    }
  }
}

假设我已建立索引:

核能是利用核反应释放核能[5]来产生热量,然后最频繁地将其用于汽轮机中以在核电站中发电。该术语包括核裂变,核衰变和核聚变。目前,周期表the系元素的元素的核裂变在人类直接服务中产生了绝大多数核能,其核衰变过程主要以地热能和放射性同位素热电发生器的形式出现在利基用途中。弥补其余的。

并搜索“核元素”〜2

我只希望突出显示“元素的核裂变”或“元素的核裂变”的一部分,但是现在强调每次出现核。

这是我的查询,如果有帮助:

{
  "fields": [
  ],
  "query": {
    "query_string": {
      "query": "\"nuclear elements\"~2",
      "fields": [
        "content.english"
      ]
    }
  },
  "highlight": {
    "pre_tags": [
      "<em class='h'>"
    ],
    "post_tags": [
      "</em>"
    ],
    "fragment_size": 500,
    "number_of_fragments": 20,
    "fields": {
      "content.english": {}
    }
  }
}

阅读 253

收藏
2020-06-22

共1个答案

一尘不染

ES
2.1中有一个突出的错误,该错误是由于此更改引起的。此请求请求已解决此问题。

根据ES开发人员的说法

这是我在#13239中引入的一个错误,当时我认为差异是由于Lucene的变化引起的:当跨度提取成功后,也会调用extractUnknownQuery,因此,如果尚未跨度提取,我们应该只使用Weight.extractTerms。

它可以在2.0之前的较旧版本中使用,并且可以在将来的版本中按预期工作。

2020-06-22