目录
一、高亮策略
1、Fast Vector Highlighter(快速向量高亮器)
Fast Vector Highlighter(快速向量高亮器)是在 Elasticsearch 5.0 版本中引入的。利用倒排索引中的词频和位置信息进行高亮显示,效率较高。
优点:适合处理大量文本和查询的高亮显示需求。
适用场景:适用于需要快速检索和高亮大量文档的场景,并需要较高性能的高亮显示需求。对于字段(大于1M),性能更高。
mapping配置如下:
{
"mappings": {
"properties": {
"content": {
"type": "text",
"term_vector": "with_positions_offsets" //启用快速向量高亮模式所需的位置和偏移量信息
}
}
}
}
查询方式:
{
"query": {
"match": {
"content": "****"
}
},
"highlight": {
"fields": {
"content": {
"pre_tags": [
"<h1>"
],
"post_tags": [
"</h2>"
],
"type": "fvh" //content配置了高亮模式,可以不选,默认就是fvh模式
}
}
}
}
2、Posting Highlighter(帖子高亮器)
Posting Highlighter(帖子高亮器)是在 Elasticsearch 6.1 版本中引入的。利用倒排索引中的词项(terms)信息来确定哪些部分需要高亮显示,可以提供更高效的高亮显示功能。
优点:效率较高,适合基于词项匹配的高亮需求。不需要重新对高亮文本进行分词,对磁盘的消耗更少。
适用场景:对于需要基于词项匹配进行高亮显示的场景,尤其是处理结构化文本和特定查询的需求。
mapping配置如下:
{
"mappings": {
"properties": {
"content": {
"type": "text",
"term_vector": "with_positions" //启用倒排高亮模式,以便在高亮时使用位置信息
}
}
}
}
查询方式:
{
"query": {
"match": {
"content": "****"
}
},
"highlight": {
"fields": {
"content": {
} //不用设置
}
}
3、Unified Highlighter(统一高亮器)
Unified Highlighter(统一高亮器)是在 Elasticsearch 7.0 版本中引入的。默认的高亮器。该策略结合了之前版本中的不同高亮器(如 Fast Vector Highlighter 和 Posti