在Elasticsearch中,高亮显示(Highlighting)通过在搜索结果中标记匹配查询的关键词片段来实现,常用于展示搜索词在文档中的上下文位置。以下是实现原理和步骤:
一、核心实现原理
- 分词匹配
对查询关键词和文档字段内容进行相同的分词处理,定位匹配的词元(Token)。 - 片段提取
根据匹配位置提取字段中的文本片段(Fragment),默认提取多个片段。 - 标签包裹
用指定标签(如<em>
)包裹匹配的关键词,生成高亮文本。
二、基础使用示例
GET /your_index/_search
{
"query": {
"match": {
"content": "Elasticsearch 高亮" }
},
"highlight": {
"fields": {
"content": {
} // 对content字段高亮
}</