架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5460|回复: 0

Elasticsearch 搜索 highlight 高亮配置介绍

[复制链接]
发表于 2021-2-14 11:43:47 | 显示全部楼层 |阅读模式
Highlighters 高亮显示
日常生活中我们使用搜索工具尝试查询一些信息的时候,常常可以看到返回的结果集中和我们查询条件相符合的字段被特殊的颜色所标记,这就是结果高亮显示。通过高亮显示用户可以明显的发现查询匹配的位置,

ES使用highlight来实现搜索结果中一个或多个字段突出显示。

.NET/C# 使用 Elasticsearch 调试查看请求和响应信息
https://www.itsvse.com/thread-9561-1-1.html

高亮参数

参数说明
boundary_chars包含每个边界字符的字符串。默认为,! ?\ \ n。
boundary_max_scan扫描边界字符的距离。默认为20。
boundary_scanner指定如何分割突出显示的片段,支持chars, sentence, or word三种方式。
boundary_scanner_locale用来设置搜索和确定单词边界的本地化设置,此参数使用语言标记的形式(“en-US”, “fr-FR”, “ja-JP”)
encoder表示代码段应该是HTML编码的:默认(无编码)还是HTML (HTML-转义代码段文本,然后插入高亮标记)
fields指定检索高亮显示的字段。可以使用通配符来指定字段。例如,可以指定comment_*来获取以comment_开头的所有文本和关键字字段的高亮显示。
force_source根据源高亮显示。默认值为false。
fragmenter指定文本应如何在突出显示片段中拆分:支持参数simple或者span。
fragment_offset控制要开始突出显示的空白。仅在使用fvh highlighter时有效。
fragment_size字符中突出显示的片段的大小。默认为100。
highlight_query突出显示搜索查询之外的其他查询的匹配项。这在使用重打分查询时特别有用,因为默认情况下高亮显示不会考虑这些问题。
matched_fields组合多个匹配结果以突出显示单个字段,对于使用不同方式分析同一字符串的多字段。所有的matched_fields必须将term_vector设置为with_positions_offsets,但是只有将匹配项组合到的字段才会被加载,因此只有将store设置为yes才能使该字段受益。只适用于fvh highlighter。
no_match_size如果没有要突出显示的匹配片段,则希望从字段开头返回的文本量。默认为0(不返回任何内容)。
number_of_fragments返回的片段的最大数量。如果片段的数量设置为0,则不会返回任何片段。相反,突出显示并返回整个字段内容。当需要突出显示短文本(如标题或地址),但不需要分段时,使用此配置非常方便。如果number_of_fragments为0,则忽略fragment_size。默认为5。
order设置为score时,按分数对突出显示的片段进行排序。默认情况下,片段将按照它们在字段中出现的顺序输出(order:none)。将此选项设置为score将首先输出最相关的片段。每个高亮应用自己的逻辑来计算相关性得分。
phrase_limit控制文档中所考虑的匹配短语的数量。防止fvh highlighter分析太多的短语和消耗太多的内存。提高限制会增加查询时间并消耗更多内存。默认为256。
pre_tags与post_tags一起使用,定义用于突出显示文本的HTML标记。默认情况下,突出显示的文本被包装在和标记中。指定为字符串数组。
post_tags与pre_tags一起使用,定义用于突出显示文本的HTML标记。默认情况下,突出显示的文本被包装在和标记中。指定为字符串数组。
require_field_match默认情况下,只突出显示包含查询匹配的字段。将require_field_match设置为false以突出显示所有字段。默认值为true。
tags_schema设置为使用内置标记模式的样式。
type使用的高亮模式:unified, plain, or fvh. 默认为 unified。


Elasticsearch支持三个高亮器:unified,plain和fvh(快速向量高亮器)。 默认为 unified。您可以指定要为每个字段使用的高亮器类型。

(1)Unified高亮器  
unified高亮器使用Lucene统一高亮器。 这个高亮器将文本分解为句子,并使用BM25算法对单个句子进行评分,就好像它们是文集中的文档一样。 它还支持准确的短语和多项(模糊,前缀,正则表达式)突出显示。 这是默认的高亮器。

(2)Plain高亮器  
plain高亮器使用标准的Lucene高亮器。 它试图在短语查询中理解单词重要性和任何单词定位标准来反映查询匹配逻辑。

(3)fvh高亮器  
fvh高亮器使用Lucene Fast Vector高亮器。此高亮器可用于在映射中将term_vector设置为with_positions_offsets的字段。

参考资料:

http://doc.codingdict.com/elasticsearch/106/
https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-request-highlighting.html




上一篇:.NET/C# 使用 Elasticsearch 调试查看请求和响应信息
下一篇:金融 TipRanks 股票分析评级
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-20 15:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表