[Elasticsearch]高亮使用方式及参数详解 您所在的位置:网站首页 ue怎么设置高亮 [Elasticsearch]高亮使用方式及参数详解

[Elasticsearch]高亮使用方式及参数详解

2024-07-15 00:43| 来源: 网络整理| 查看: 265

一、概念

使用 Elasticsearch 的高亮功能,你可以在返回的搜索结果中为特定字段中的匹配词条添加 HTML 标签。你可以选择要高亮的字段,以及用于高亮的前缀和后缀标签。

比如当你的检索词为:刑法,当你使用默认高亮时高亮会为你返回刑法

二、使用方式及参数 参数 含义fields指定高亮字段,每个字段内可单独配置字段对应高亮选项require_field_match是否只有查询字段可以高亮,默认为true; 设置为false则所有字段可以进行高亮order                        高亮片段排序规则,不指定默认按照片段出现顺序,可指定为score按照片段匹配得分排序fragmenter

片段切割器,可以指定为simple和span两种模式;

对于simple,在使用时需要制定 每段长度及总段数;

而对于span,相当于自动根据匹配跨度分段,我们在使用时只需要制定段数就可以,相当于更加智能;但你在接受他某些时刻智能切分出好文本段的时候,也要接受它的段让你头疼

type

高亮器类型选用:

plain:默认常规高亮器

posting:不常用,需要使用词向量,但预期不准确

fvh:需要开启词向量,并且使用时性能较高,在字段映射时设置 term_vector 为 "with_positions_offsets"后,fvh高亮器可以使用词向量的词条位置,快速定位词条片段,并生成高亮;但是注意,该种方式也需要额外的索引空间;

fragment_size 高亮段文本长度 number_of_fragments 返回多少段高亮文本,默认为5no_match_size当没有高亮文本进行匹配,返回文本长度(从头部开始);一般使用时不会开启,默认不会返回;highlight_query对高亮进行查询式重定,当使用该方式时,满足查询dsl的命中片段会被高亮pre_tags前置标签设置 默认post_tags后置标签设置 默认

三、highlight_query详解及示例

下面为示例,该示例表示,对content字段进行match查询,但高亮字段为content_cn,并且该字段需满足查询dsl的命中片段会被高亮

GET /test_index/_search { "_source": { "include": [ "title_cn", "content_cn" ] }, "query": { "match": { "content": "库里" } }, "highlight": { "fields": { "content_cn": {} }, "highlight_query": { "match_phrase": { "content_cn": { "query": "詹姆斯" } } } } } Response { "_index": "test_index", "_type": "_doc", "_id": "6efc9305b7b27b30154336984c62f9b2", "_score": 28.185057, "_source": { "title_cn": "elatcisearch高亮攻略(2017)" }, "highlight": { "content_cn": [ "如果我是勒布朗·詹姆斯的教练,我可能会有以下几点感想: 尊重和欣赏:作为篮球历史上最杰出的球员之一,勒布朗·詹姆斯的天赋、技能和对比赛的热爱是毋庸置疑的。作为他的教练,我会非常尊重他的能力,并感激能有机会与这样的运动员一起工作。" ] } }

在使用过程中,可以将该种方式为最终解决方案; 但注意highlight_query也会额外构建结果集的二次查查询,会消耗额外的性能;

三、fvh高亮器使用方式(优化性能)

上文提到fvh的高亮器选择:使用fvh前需要对字段开启词向量,在字段映射时设置 term_vector 为 "with_positions_offsets"后,fvh高亮器可以使用词向量的词条位置,快速定位词条片段,并生成高亮;但是注意,该种方式也需要额外的索引空间;

下方进行简单示例:

d29d37b472654086ada7e6c7ee782610.png

 在某些时候,我们的一些字段开启了词向量分析,那么我们在使用的时候可以试图考虑一下,是否可以就坡下驴的使用该种高亮器,来优化我们的性能;

四、总结

使用高亮时,主要注意设置number_of_fragment及fragment_size,如遇深度高亮使用可以进行highlight_query的使用;

在开启词向量后,可以尝试使用fvh高亮器提升效率

(优化永无止境)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有