ElasticSearch怎么搜索返回结果的时候,高亮显示关键词

2023-05-05 09:41:44    技术分享   

在 Elasticsearch 中,可以通过使用 highlight 功能来高亮显示搜索结果中的关键词。以下是一些基本步骤:

(1)在搜索查询中设置需要高亮显示的字段和关键词,如下所示:

json
{
      "query": {
        "match": {
          "content": "关键词"
        }
      },
      "highlight": {
        "fields": {
          "content": {}
        }
      }
    }

    在上面的搜索查询中,我们将 "content" 字段设置为需要高亮显示的字段,将 "关键词" 设置为需要搜索的关键词。

(2)发送上述搜索查询请求到 Elasticsearch。    

(3)Elasticsearch 返回搜索结果,其中包含了每个匹配的文档以及高亮显示的部分。高亮显示的部分用 <em> 标记包含关键词的片段,默认使用标签 <em> 和 </em> 来标记高亮显示的文本,您也可以通过设置高亮显示选项来自定义标签。

json
{
      "took": 10,
      "hits": {
        "total": 1,
        "max_score": 0.19178301,
        "hits": [
          {
            "_index": "my_index",
            "_type": "my_type",
            "_id": "1",
            "_score": 0.19178301,
            "_source": {
              "content": "这是一篇包含关键词的文章"
            },
            "highlight": {
              "content": [
                "这是一篇包含 \<em\>关键词\</em\> 的文章"
              ]
            }
          }
        ]
      }
    }

    在上面的结果中,"\_source" 字段包含了匹配的文档,而 "highlight" 字段包含了高亮显示的部分。

需要注意的是,高亮显示功能可能会影响性能,因此应该根据具体情况进行设置。您可以在 Elasticsearch 官方文档中查找更多关于 highlight 功能的信息。


QQ
微信