文章目录

  • 概述
  • 官网
  • 示例
    • 查询单个字段
    • 查询多个字段
  • 三种highlight介绍 (unified, plain, fvh)
    • unified
    • plain
    • fvh
  • 设置高亮html标签,默认是标签
  • 高亮片段fragment的设置


概述

继续跟中华石杉老师学习ES,第62篇

课程地址: https://www.roncoo.com/view/55


官网

7.3版本Highlighting: 戳这里

6.4版本: 戳这里


示例

为了演示这个功能,我们新建个索引

#新建artisan_indexPUT /artisan_index
{"mappings": {"artisan_type": {"properties": {"title": {"type": "text","analyzer": "ik_max_word"},"content": {"type": "text","analyzer": "ik_max_word"}}}}
}#写入2条数据PUT /artisan_index/artisan_type/1
{"title": "小工匠学习ES","content": "小工匠的学习之旅!"
}PUT /artisan_index/artisan_type/2
{"title": "我是小工匠","content": "欢迎大家"
}

查询单个字段

使用highlight查询

GET /artisan_index/artisan_type/_search
{"query": {"match": {"title": "小工匠"}},"highlight": {"fields": {"title": {}}}
}

返回

<em></em> 会变成红色,所以说你的指定的field中,如果包含了那个搜索词的话,就会在那个field的文本中,对搜索词进行红色的高亮显示。


查询多个字段

第二个例子: 查询多个字段

GET /blog_website/blogs/_search
{"query": {"bool": {"should": [{"match": {"title": "博客"}},{"match": {"content": "博客"}}]}},"highlight": {"fields": {"title": {},"content": {}}}
}

highlight中的field,必须跟query中的field一一对齐的


三种highlight介绍 (unified, plain, fvh)

unified


plain


fvh


总结:

  • 一般情况下,用plain highlight也就足够了,不需要做其他额外的设置
  • 如果对高亮的性能要求很高,可以尝试启用posting highlight
  • 如果field的值特别大,超过了1M,那么可以用fast vector highlight

设置高亮html标签,默认是标签

GET /artisan_index/artisan_type/_search
{"query": {"match": {"content": "小工匠"}},"highlight": {"pre_tags": ["<tag1>"],"post_tags": ["</tag1>"], "fields": {"content": {"type": "plain"}}}
}


高亮片段fragment的设置

GET /_search
{"query" : {"match": { "user": "kimchy" }},"highlight" : {"fields" : {"content" : {"fragment_size" : 150, "number_of_fragments" : 3, "no_match_size": 150 }}}
}

  • fragment_size:举个例子 你一个Field的值,比如有长度是1万,但是你不可能在页面上显示这么。。设置要显示出来的fragment文本判断的长度,默认是100
  • number_of_fragments:你可能你的高亮的fragment文本片段有多个片段,你可以指定就显示几个片段

白话Elasticsearch62-进阶篇之Highlighting高亮显示相关推荐

  1. [安全攻防进阶篇] 四.逆向分析之条件语句和循环语句源码还原及流程控制逆向

    从2019年7月开始,我来到了一个陌生的专业--网络空间安全.初入安全领域,是非常痛苦和难受的,要学的东西太多.涉及面太广,但好在自己通过分享100篇"网络安全自学"系列文章,艰难 ...

  2. Ubuntu发烧友三部曲 进阶篇

     Ubuntu发烧友三部曲  进阶篇:应用软件的使用与安装             Linux诞生至今硬件的支持和应用软件的使用一直都是linux发烧友们最关心的问题.说起硬件的支持,我们不 得不想到 ...

  3. 《 Elasticsearch顶尖高手系列:高手进阶篇(最新第二版)》面前最新

    课程大纲 第1节结构化搜索_IT技术论坛案例背景介绍   9分钟   |  第2节结构化搜索_在案例中实战使用term filter来搜索数据   20分钟   |  第3节结构化搜索_filter执 ...

  4. labview入门到出家5(进阶篇)——程序调试以及labview函数库的运用

    跟了前面几章的操作流程,相信大家对labview有了一定的认识.其实只要了解了labview的编程思路,再熟悉地运用各个变量,函数以及属性,那么我们就可以打开labview的大门了.跟其他编程语言一样 ...

  5. labview入门到出家6(进阶篇)——移位寄存器的使用

    前面介绍了如何熟悉和使用Labview自带的库函数以及调试方式,大家后期基本可以凭借这两个方式从入门到出家了,哈哈,后面就靠各位同仁99%的努力了.这篇为啥要讲移位寄存器呢,主要是之前做的项目和经验告 ...

  6. Enterprise Library Step By Step系列(十二):异常处理应用程序块——进阶篇

    一.把异常信息Logging到数据库 在日志和监测应用程序块中,有朋友提意见说希望能够把异常信息Logging到数据库中,在这里介绍一下具体的实现方法. 1.创建相关的数据库环境: 我们可以用日志和监 ...

  7. Docker 数据卷之进阶篇

    Docker 数据卷之进阶篇 原文:Docker 数据卷之进阶篇 笔者在<Docker 基础 : 数据管理>一文中介绍了 docker 数据卷(volume) 的基本用法.随着使用的深入, ...

  8. C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码...

    原文:C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github. ...

  9. Kafka核心设计与实践原理总结:进阶篇

    作者:未完成交响曲,资深Java工程师!目前在某一线互联网公司任职,架构师社区合伙人! kafka作为当前热门的分布式消息队列,具有高性能.持久化.多副本备份.横向扩展能力.我学习了<深入理解K ...

最新文章

  1. python eve mysql_python连接 MySQ 数据库
  2. oracle excel报表开发,深入浅出OracleEBS之Excel报表开发.doc
  3. linux 输出重定向
  4. feign整合sential,Feign中使用Sentinel熔断器防止服务雪崩
  5. python假设税前工资和税率如下_Python来做假设检验
  6. 华为云设计语言_华为又一项黑科技即将来临:可即时翻译任何动物语言
  7. android 截屏_图文小编福利:Apowersoft专业截屏王
  8. 于iOS跳转到应用程序AppStore
  9. android常用窗口动画,android 自定义dialog,窗口动画,
  10. MAC编译OpenJDK8:iostream file not found(独家解决办法)
  11. python判断邮箱格式是否正确_python:校验邮箱格式
  12. 研报笔记:光大证券多因子系列1-3
  13. 当我们在谈论高并发的时候究竟在谈什么?
  14. 截止频率计算公式wc_计算截止频率Wc的快速方法
  15. 项目前期准备的重要性
  16. Linux 内核编译
  17. 面试官:能说一说微信授权的原理吗?(Spring Cloud OAuth2 授权码模式)
  18. Java job interview:项目架构Java车联网行业的云端架构实现
  19. OKALEIDO解决NFT流动性不足难题 更有创新平台通证分配方案
  20. 思之以实,取之以略,行之以果

热门文章

  1. Flyme6系统适配教程(Patchrom)
  2. Linux下CMake简明教程(一)简单入门
  3. 朴素贝叶斯 python 实现
  4. NLP-基础知识-007(机器学习-朴素贝叶斯)
  5. Tensorflow实现MNIST数据自编码(1)
  6. oracle v$access执行很慢,Oracle bug之v$access
  7. php连接redis报错,PHP使用phpredis链接redis错误
  8. 基于stm32f405控制三相无刷电机例程_ST SSC 频道 | 基于ST STM32F302R8T6 电机空气压缩机方案...
  9. 【Linux】23_网络管理物理层详解
  10. java中最容易犯错的特殊字符