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

这篇具有很好参考价值的文章主要介绍了[Elasticsearch]高亮使用方式及参数详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概念

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

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

二、使用方式及参数

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

三、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": [
                        "如果我是勒布朗·<em>詹姆斯<em>的教练,我可能会有以下几点感想:

尊重和欣赏:作为篮球历史上最杰出的球员之一,勒布朗·詹姆斯的天赋、技能和对比赛的热爱是毋庸置疑的。作为他的教练,我会非常尊重他的能力,并感激能有机会与这样的运动员一起工作。"
                    ]
                }
            }

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

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

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

下方进行简单示例:

elasticsearch高亮,elasticsearch,大数据

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

四、总结

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

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

(优化永无止境)文章来源地址https://www.toymoban.com/news/detail-724128.html

到了这里,关于[Elasticsearch]高亮使用方式及参数详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Elasticsearch配置秘籍】详解config/elasticsearch.yml,解锁关键参数与实战应用

    Elasticsearch的强大性能与灵活性,很大程度上得益于其细致入微的配置选项。作为核心配置文件, config/elasticsearch.yml 扮演着至关重要的角色。本文将深度剖析该文件中的重要参数,结合实例说明其作用与应用场景,助您定制最适合业务需求的Elasticsearch集群。 一、基础配置项

    2024年04月11日
    浏览(35)
  • ElasticSearch minimum_should_match 参数详解

    minimum_should_match :可以使用 minimum_should_match 参数来指定返回文档 必须(must) 匹配的should子句的数量或百分比。可以称他-最小匹配度 如果 bool 查询至少包含一个 should 子句,并且没有 must 或 filter 子句,则默认值为 1。 否则,默认值为 0。 minimum_should_match参数一般放到should叶子查

    2024年02月19日
    浏览(35)
  • ElasticSearch系列七:ElasticSearch搜索技术深入讲解之高亮

    1.高亮显示         在搜索中,经常需要对搜索做高亮显示,高亮显示也有其常用的参数,在这个案例中做一些常用参数的介绍。假如现在搜索cars索引中remark字段中包含“大众”的document。并对“XX”做高亮显示,高亮效果使用html标签span,并设定字体为红色

    2023年04月09日
    浏览(65)
  • 【ElasticSearch】使用 Java 客户端 RestClient 实现对文档的查询操作,以及对搜索结果的排序、分页、高亮处理

    在 Elasticsearch 中,通过 RestAPI 进行 DSL 查询语句的构建通常是通过 HighLevelRestClient 中的 resource() 方法来实现的。该方法包含了查询、排序、分页、高亮等所有功能,为构建复杂的查询提供了便捷的接口。 RestAPI 中构建查询条件的核心部分是由一个名为 QueryBuilders 的工具类提供

    2024年01月16日
    浏览(59)
  • elasticsearch高亮之Highlight原理

    一、highlight简介 highlight是提升用户体验的重要手段,搜索引擎通过高亮突出命中等方式,方便用户通过周围的信息快速的确认是否是自己希望的结果; highlight功能通常包含以下三个主要的处理过程 1.将字段文本拆分为小的片段; 2.找出最相关的片段; 3.高亮查

    2023年04月27日
    浏览(34)
  • Elasticsearch查询结果高亮操作实战

    在进行搜索时,搜索出的内容中的会显示不同的颜色,称之为高亮 百度搜索\\\"狂飙\\\",如下所示: 或者在淘宝搜索“手机”,如下所示: 我们可以发现搜索的在搜索到的信息上都变成了红色高亮 通过开发者工具查看高亮数据的html代码实现: Elastic

    2024年02月12日
    浏览(63)
  • ElasticSearch实战之项目搜索高亮

    为满足 ElasticSearch 可在项目中实现搜索高亮,我们需要先做一些前情配置 导入 ElasticSearch 依赖 修改 propertise 配置 构建一个搜索类对象,这里假设我们存在一个搜索对象为 Content ,其中我们要进行查询的字段是 title 同时,假设我们拥有 ListContent 数据集合,至此,我们做好了

    2024年04月22日
    浏览(40)
  • elasticsearch搜索关键字高亮显示

    使用 elasticsearch 时,有一个很常见的需求是,能在页面上将搜索出的结果中属于的文字,进行高亮显示。 elasticsearch 对这个做了一定的支持,它能查询结果的基础上,额外返回需要高亮显示的整个文本,至于具体你想怎么用它,需要根据业务自行实现。 使用 k

    2023年04月08日
    浏览(49)
  • Elasticsearch:RestHighLevelClient实现搜索、分页、排序、高亮

    1.引入依赖 2.自定义搜索DTO 3.封装工具类、实现 分页、高亮、排序 反射工具类 ReflectUtil 是我自定义的,原理是反射,可以引入hutool的工具包,同样也可以实现该结果

    2024年02月11日
    浏览(43)
  • PHP elasticsearch 条件过滤、排序、高亮实现

    php在做搜索引擎时,进程要对结果进行筛选,所以我们这里记录一下elasticsearch 条件过滤、排序、高亮实现。在创建索引时如果使用了mapping映射,请将要过滤和排序的字段index设置为true ok,搞定! php写搜索时注意:多个筛选条件时,term、range外面还有一层[],高亮需指定字段,

    2023年04月21日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包