es--基础--11--es服务API--高亮

这篇具有很好参考价值的文章主要介绍了es--基础--11--es服务API--高亮。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

es–基础–11–es服务API–高亮


1、介绍

  1. 可以让您从搜索结果中的一个或多个字段中获取突出显示的摘要,以便向用户显示查询匹配的位置。
  2. 当您请求突出显示(即高亮)时,响应结果的 highlight 字段中包括高亮的字段和高亮的片段。
  3. Elasticsearch 默认会用 标签标记关键字。

1.1、内容

  1. 高亮参数
  2. 自定义高亮片段
  3. 多字段高亮
  4. 高亮性能分析

2、高亮参数

2、高亮参数

2.1、boundary_chars

  1. 包含每个边界字符的字符串。
  2. 默认:! ?\ \ n。

2.2、boundary_max_scan

  1. 扫描边界字符的距离。
  2. 默认:20

2.3、boundary_scanner

  1. 指定如何分割突出显示的片段
  2. 支持三种方式
    1. chars
    2. sentence
    3. word。

2.4、boundary_scanner_locale

  1. 用来设置搜索和确定单词边界的本地化设置
  2. 此参数使用语言标记的形式如下
    1. “en-US”
    2. “fr-FR”
    3. “ja-JP”

2.5、encoder

  1. 表示代码段应该是HTML编码
  2. 默认HTML (HTML-转义代码段文本,然后插入高亮标记)

2.6、fields

  1. 指定检索高亮显示的字段。
  2. 可以使用通配符来指定字段。例如,可以指定comment_*来获取以comment_开头的所有文本和关键字字段的高亮显示。

2.7、force_source

  1. 根据源高亮显示
  2. 默认:false。

2.8、fragmenter

  1. 指定文本应如何在突出显示片段中拆分
  2. 支持参数
    1. simple
    2. span。

2.9、fragment_offset

  1. 控制要开始突出显示的空白。仅在使用fvh highlighter时有效。

2.10、fragment_size

  1. 字符中突出显示的片段的大小。
  2. 默认:100。

2.11、highlight_query

  1. 突出显示搜索查询之外的其他查询的匹配项。
  2. 在使用重打分查询时,特别有用,因为默认情况下高亮显示不会考虑这些问题。

2.12、matched_fields

  1. 组合多个匹配结果以突出显示单个字段,对于使用不同方式分析同一字符串的多字段。
  2. 所有的matched_fields必须将term_vector设置为with_positions_offsets,但是只有将匹配项组合到的字段才会被加载,因此只有将store设置为yes才能使该字段受益。
  3. 只适用于fvh highlighter。

2.13、no_match_size

  1. 如果没有要突出显示的匹配片段,则希望从字段开头返回的文本量。
  2. 默认:0(不返回任何内容)。

2.14、number_of_fragments

  1. 返回的片段的最大数量。
    1. 如果设置为0,则不会返回任何片段。且忽略fragment_size。
    2. 如果设置不为0,突出显示并返回整个字段内容。
  2. 当需要突出显示短文本(如标题或地址),但不需要分段时,使用此配置非常方便。
  3. 默认:5。

2.15、order

  1. 设置为score时,按分数对突出显示的片段进行排序。
  2. 默认情况下,片段将按照它们在字段中出现的顺序输出(order:none)。将此选项设置为score将首先输出最相关的片段。每个高亮应用自己的逻辑来计算相关性得分。

2.16、phrase_limit

  1. 控制文档中所考虑的匹配短语的数量。防止fvh highlighter分析太多的短语和消耗太多的内存。
  2. 提高限制会增加查询时间并消耗更多内存。
  3. 默认:256。

2.17、pre_tags

  1. 与post_tags一起使用,定义用于突出显示文本的HTML标记。
  2. 默认情况下,突出显示的文本被包装在标记中。指定为字符串数组。

2.18、post_tags

  1. 与pre_tags一起使用,定义用于突出显示文本的HTML标记。
  2. 默认情况下,突出显示的文本被包装在标记中。指定为字符串数组。

2.19、require_field_match

  1. 是否突出显示包含查询匹配的字段。
    1. true(默认):只突出显示包含查询匹配的字段
    2. false: 突出显示所有字段

2.20、tags_schema

  1. 设置为使用内置标记模式的样式。

2.21、type

  1. 使用的高亮模式
    1. unified(默认)
    2. plain
    3. fvh

3、自定义高亮片段

使用自定义标签,在高亮属性中给需要高亮的字段加上 pre_tags 和 post_tags 即可。

例如,搜索 title 字段中包含关键词 javascript 的书籍并使用自定义 HTML 标签高亮关键词,查询语句如下:

GET /books/_search
{
  "query": {
    "match": { "title": "javascript" }
  },
  "highlight": {
    "fields": {
      "title": {
        "pre_tags": ["<strong>"],
        "post_tags": ["</strong>"]
      }
    }
  }
}

4、多字段高亮

搜索 title 字段的时候,我们期望 description 字段中的关键字也可以高亮,这时候就需要把 require_field_match 属性的取值设置为 fasle。require_field_match 的默认值为 true,只会高亮匹配的字段。多字段高亮的查询语句如下:

GET /books/_search
{
  "query": {
    "match": { "title": "javascript" }
  },
  "highlight": {
    "require_field_match": false,
    "fields": {
      "fieldTitle": {
        "pre_tags": ["<strong>"],
        "post_tags": ["</strong>"]
      },
      "fieldContent": {
        "pre_tags": ["<strong>"],
        "post_tags": ["</strong>"]
      }
    }
  }
}

5、高亮性能分析

5.1、高亮器分类

  1. highlighter 高亮器(默认)
  2. postings-highlighter 高亮器
  3. fast-vector-highlighter 高亮器。

5.1、highlighter

  1. 最基本的高亮器,实现高亮功能
  2. 需要对 _source 中保存的原始文档 进行二次分析,其速度在三种高亮器里最慢,优点是不需要额外的存储空间。

5.2、postings-highlighter

  1. 实现高亮功能
  2. 不需要二次分析,但是需要在字段的映射中设置 index_options,参数的取值为 offsets,即保存关键词的偏移量,速度快于highlighter 高亮器。

配置 comment 字段使用 postings-highlighter 高亮器,映射如下:

PUT /example
{
  "mappings": {
    "doc": {
      "properties": {
        "comment": {
          "type": "text",
          "index_options": "offsets"
        }
      }
    }
  }
}

5.3、fast-vector-highlighter

  1. 实现高亮功能
  2. 速度最快,但是需要在字段的映射中设置 term_vector,参数的取值为 with_positions_offsets,即保存关键词的位置和偏移信息,占用的存储空间最大,是典型的空间换时间的做法。

配置 comment 字段使用 fast-vector-highlighter 高亮器,映射如下:文章来源地址https://www.toymoban.com/news/detail-696127.html

PUT /example
{
  "mappings": {
    "doc": {
      "properties": {
        "comment": {
          "type": "text",
          "term_vector": "with_positions_offsets"
        }
      }
    }
  }
}

到了这里,关于es--基础--11--es服务API--高亮的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Elasticsearch (ES) 搜索引擎: 文本搜索:分析器/分词器、同义词/停用词、拼音搜索、高亮显示、拼写纠错

    原文链接:https://xiets.blog.csdn.net/article/details/132349032 版权声明:原创文章禁止转载 专栏目录:Elasticsearch 专栏(总目录) 文本搜索主要指的就是全文搜索,全文搜索是搜索引擎的核心功能,与精确匹配的结构化数据不同,文本(text)数据在构建索引和搜索时都需要进行额外的处

    2024年02月03日
    浏览(58)
  • ES搜索引擎入门+最佳实践(九):项目实战(二)--elasticsearch java api 进行数据增删改查

            本篇是这个系列的最后一篇了,在这之前可以先看看前面的内容: ES搜索引擎入门+最佳实践(一)_flame.liu的博客-CSDN博客 ES搜索引擎入门+最佳实践(二)_flame.liu的博客-CSDN博客 ES搜索引擎入门+最佳实践(三)_flame.liu的博客-CSDN博客 ES搜索引擎入门+最佳实践(四)_flame.liu的博客

    2024年02月12日
    浏览(59)
  • Java SpringBoot API 实现ES(Elasticsearch)搜索引擎的一系列操作(超详细)(模拟数据库操作)

    小编使用的是elasticsearch-7.3.2 基础说明: 启动:进入elasticsearch-7.3.2/bin目录,双击elasticsearch.bat进行启动,当出现一下界面说明,启动成功。也可以访问http://localhost:9200/ 启动ES管理:进入elasticsearch-head-master文件夹,然后进入cmd命令界面,输入npm run start 即可启动。访问http

    2024年02月04日
    浏览(57)
  • Linux基础服务11——LNMP架构

    主机 服务 192.168.161.129 nginx 192.168.161.131 mysql 192.168.161.132 php 1.参考文章,nginx部署。 1.参考文章,mysql二进制部署。 1.参考文章,php编译安装 1.nginx配置文件指定php服务器地址,指定php服务器上的网页文件。 2.生成前端文件。 3.重启nginx。 1.php服务器上指定前端文件,需要与ng

    2024年02月16日
    浏览(40)
  • elasticsearch(es)高级查询api

    在以上示例代码中,定义了一个返回类型为ResponseEntityMapString, Object的/search POST映射方法,并使用MapString, Object对象来存储异步操作的结果。然后,创建了一个ActionListener的匿名实现对象,并使用client.searchAsync()方法以异步方式执行搜索操作。在onResponse()方法中,将搜索结果存储

    2023年04月09日
    浏览(44)
  • 微服务分布式搜索引擎 ElasticSearch 搜索结果处理 排序、分页与高亮

    本文参考黑马 分布式Elastic search Elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 搜索结果处理 搜索的结果可以按照用户指定的方式去处理或展示。 elasticsearch默认是根据相关度算分(_score)来排序,但是也支

    2024年02月02日
    浏览(59)
  • es Elasticsearch 六 java api spirngboot 集成es

    目录 Java restApi Springboot 集成es 新增-同步 新增-异步 增删改查流程 _bulk 批量操作 新增-同步 新增-异步 增删改查流程 创建请求、2.执行、3.查看返回结果     _bulk 批量操作 ok 持续更新

    2024年02月10日
    浏览(55)
  • ElasticSearch基础3——聚合、补全、集群。黑马旅游检索高亮+自定义分词器+自动补全+前后端消息同步

    导航: 【黑马Java笔记+踩坑汇总】JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城  黑马旅游源码:  GitHub: GitHub - vincewm/hotel: 黑马旅游项目 Gitee: hotel: 黑马旅游项目 目录 1.数据聚合 1.1.聚合的种类 1.2.DSL实现聚合 1.2.1.Bucket聚合语法 1.2.2.聚合结果

    2023年04月16日
    浏览(83)
  • ElasticSearch - 在 微服务项目 中基于 RabbitMQ 实现 ES 和 MySQL 数据异步同步(考点)

    目录 一、数据同步 1.1、什么是数据同步 1.2、解决数据同步面临的问题 1.3、解决办法 1.3.1、同步调用 1.3.2、异步通知(推荐) 1.3.3、监听 binlog 1.3、基于 RabbitMQ 实现数据同步 1.3.1、需求 1.3.2、在“酒店搜索服务”中 声明 exchange、queue、routingKey,同时开启监听 1.3.3、在“酒店

    2024年02月08日
    浏览(53)
  • Linux高性能服务器编程 学习笔记 第五章 Linux网络编程基础API

    我们将从以下3方面讨论Linux网络API: 1.socket地址API。socket最开始的含义是一个IP地址和端口对(ip,port),它唯一表示了使用TCP通信的一端,本书称其为socket地址。 2.socket基础API。socket的主要API都定义在sys/socket.h头文件中,包括创建socket、命名socket、监听socket、接受连接、发

    2024年02月07日
    浏览(56)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包