Elasticsearch-突出显示“ .keyword”和文本字段

时间:2018-11-19 07:40:11

标签: elasticsearch

在使用字段的完整数据搜索字段时,我发现突出显示问题。我使用了自定义分析器,每个字段都存储为文本和关键字。

我正在使用空格作为搜索分析器。

我的自定义分析器是:

a2,a3,a4,a3

我的映射文件是:

{a2,a3,a4}

我的查询是:

3

我的重点结果是:

4

1 个答案:

答案 0 :(得分:0)

我可以建议您进行此类查询(分析和映射保持不变):

GET /index-53370229/_doc/_search
{
  "from": 0,
  "size": 24,
  "query": {
    "bool": {
      "should": [
        {
          "multi_match": {
            "query": "monkey business",
            "type": "phrase",
            "slop": "2",
            "fields": []
          }
        }
      ],
      "minimum_should_match": 1
    }
  },
  "highlight": {
    "type": "fvh",
    "fields": {
      "field": {
        "matched_fields": [
          "field",
          "field.keyword"
        ]
      }
    }
  }
}

唯一的更改是在highlight部分。结果,您将获得:

"highlight": {
  "field": [
    "<em>monkey business</em>"
  ]
}

我使用了matched_fields属性,您可以在文档中对其进行阅读:https://www.elastic.co/guide/en/elasticsearch/reference/6.5/search-request-highlighting.html#matched-fields