MST

星途 面试题库

面试题:ElasticSearch 中如何实现简单的高亮显示自定义

在 ElasticSearch 搜索中,阐述如何通过基本配置实现高亮显示自定义,例如改变高亮标签。请说明相关的 API 参数及配置步骤。
28.7万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

1. API 参数

在 Elasticsearch 的搜索请求中,使用 highlight 参数来配置高亮显示。主要涉及以下子参数:

  • pre_tags:定义高亮片段开始的标签,默认为 <em>。例如,想要自定义为 <span class="highlight">,则设置此参数为此值。
  • post_tags:定义高亮片段结束的标签,默认为 </em>。对应上面自定义开始标签,应设置为 </span>
  • fields:指定需要高亮显示的字段。可以是单个字段,也可以是多个字段。例如 {"title": {}, "content": {}} 表示对 titlecontent 字段进行高亮。

2. 配置步骤

  1. 构建搜索请求:以使用 Elasticsearch 的 REST API 为例,发送如下格式的 POST 请求:
{
    "query": {
        // 这里填写你的查询条件,例如 match 查询
        "match": {
            "your_field": "your_search_term"
        }
    },
    "highlight": {
        "pre_tags": ["<span class="highlight">"],
        "post_tags": ["</span>"],
        "fields": {
            "your_field": {}
        }
    }
}
  1. 执行请求:通过 HTTP 客户端(如 curl)发送上述请求到 Elasticsearch 服务端。例如:
curl -X POST "http://localhost:9200/your_index/_search" -H 'Content-Type: application/json' -d'
{
    "query": {
        "match": {
            "your_field": "your_search_term"
        }
    },
    "highlight": {
        "pre_tags": ["<span class="highlight">"],
        "post_tags": ["</span>"],
        "fields": {
            "your_field": {}
        }
    }
}
'
  1. 处理响应:Elasticsearch 的响应中会包含高亮后的片段,在 highlight 字段下对应指定的字段名中获取,可根据需求在应用程序中进行展示。