| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 解决 Elastic Search 的 Fast Vector Highlighting (FVH) 策略无法高亮 nested 数据类型 -> 正文阅读 |
|
[大数据]解决 Elastic Search 的 Fast Vector Highlighting (FVH) 策略无法高亮 nested 数据类型 |
前言本文的目的不在介绍 ES 的三种高亮文本的策略,因此在阅读本文之前假设你已经
提出问题一般情况下,ES 的文本搜索结果高亮默认的策略是 Unified,这种高亮策略对于大部分文本是够用的,但是如果文本的长度比较长,比如达到几十兆甚至上百兆的文本数据,那么 ES 在 FETCH 阶段去解析文本并准备文本高亮的时候会非常耗时,并且很可能请求超时。从官网的文档中我们知道有一种 Fast Vector Highlighting (FVH) 策略,主要是针对大文本高亮准备的,也是一种典型的空间换时间的策略,但这需要我们文本属性的 不过,当一切准备就绪,而你的文本字段是 nested 数据类型的时候,确发现搜素出的结果中没有了 highlight 这一项。因此提出问题:FVH 策略如何高亮 nested field 的字段? 解决办法FHV 需要索引位置信息和偏移量信息。高亮操作是在顶层文档执行的,对于嵌套文档来说,位置和偏移量信息是保存在嵌套文档中的,因此高亮操作无法访问这些信息。 同时,在顶层高亮嵌套文档会导致错误的结果,比如下面例子:
得到的高亮结果是 但是通过
总结对于嵌套文本来说,我们可以借助 inner_hits 和 FVH 来针对大文本进行快速的高亮显示。但是这也是一种通过空间换时间的做法,要针对具体的业务场景进行衡量选择。 参考文档[1] Search your data ? Highlighting https://www.elastic.co/guide/en/elasticsearch/reference/current/highlighting.html#highlighting [2] Mapping parameters ? term_vector https://www.elastic.co/guide/en/elasticsearch/reference/current/term-vector.html [3] 白话Elasticsearch62-进阶篇之Highlighting高亮显示 https://cloud.tencent.com/developer/article/1862466 [4] ElasticSearch 高亮显示大文档搜索结果的策略和性能对比 https://cloud.tencent.com/developer/article/1491129 [5] Elastic Search: Highlighting Text That Contains HTML Tags https://hamidmosalla.com/2021/06/06/elastic-search-highlighting-text-that-contains-html-tags/ [6] FVH doesn’t highlight nested fields https://github.com/elastic/elasticsearch/issues/19265 [7] Elasticsearch highlight with nested objects https://stackoverflow.com/questions/15230580/elasticsearch-highlight-with-nested-objects |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 3:54:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |