ES7.7中highlight的结果丢失部分文本的bug

2023-11-05

本bug在windows版本 ES 7.7.0 和 7.15.2 中都可以再现
ik分词器已安装, 并导入了扩展停止词 extra_stopword.dic

Step1, 先建立一个索引.

在此之前, 请确保已经安装分词器插件ik

PUT /test
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  },
  "mappings": {
    "dynamic": "strict",
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "ik_max_word",
        "search_analyzer": "ik_smart"
      }
    }
  }
}

Step2, 批量导入几笔数据:

POST _bulk
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "title" : "【aben sky found】 最大华人车行!限量超跑,优质二手车买卖,最高价现金收购二手车!" }
{ "index" : { "_index" : "test", "_id" : "2" } }
{ "title" : "【aben sky found】最大华人车行!限量超跑,优质二手车买卖,最高价现金收购二手车!" }
{ "index" : { "_index" : "test", "_id" : "3" } }
{ "title" : "Regenwald Leasing 最大华人车行!限量超跑,优质二手车买卖,最高价现金收购二手车!" }
{ "index" : { "_index" : "test", "_id" : "4" } }
{ "title" : "【Regenwald Leasing】最大华人车行!限量超跑,优质二手车买卖,最高价现金收购二手车!" }
{ "index" : { "_index" : "test", "_id" : "5" } }
{ "title" : "Regenwald Leasing 最大华人车行! 限量超跑,优质二手车买卖,最高价现金收购二手车!" }
{ "index" : { "_index" : "test", "_id" : "6" } }
{ "title" : "Regenwald Leasing 最大华人车行 限量超跑,优质二手车买卖,最高价现金收购二手车!" }
{ "index" : { "_index" : "test", "_id" : "7" } }
{ "title" : "【Regenwald Leasing】最大华人车行 限量超跑,优质二手车买卖,最高价现金收购二手车!" }
{ "index" : { "_index" : "test", "_id" : "8" } }
{ "title" : "This is aben. 二手!奔驰焚枯食淡分类考试的分类看到数据量咖啡就是打了客服绝对时空裂缝!" }
{ "index" : { "_index" : "test", "_id" : "9" } }
{ "title" : "This is aben, 二手,奔驰焚枯食淡分类考试的分类看到数据量咖啡就是打了客服绝对时空裂缝!" }
{ "index" : { "_index" : "test", "_id" : "10" } }
{ "title" : "This is aben, 二手!奔驰焚枯食淡分类考试的分类看到数据量咖啡就是打了客服绝对时空裂缝!" }

Step3, 执行匹配搜索,并高亮title字段:

GET /test/_search
{
  "query": {
    "match": {"title": "二手奔驰"}
  },
  "highlight": {
    "fields": {"title": {}}
  }
}

结果如下:

{
  "took" : 33,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 10,
      "relation" : "eq"
    },
    "max_score" : 1.2969569,
    "hits" : [
      {
        "_index" : "test",
        "_type" : "_doc",
        "_id" : "9",
        "_score" : 1.2969569,
        "_source" : {
          "title" : "This is aben, 二手,奔驰焚枯食淡分类考试的分类看到数据量咖啡就是打了客服绝对时空裂缝!"
        },
        "highlight" : {
          "title" : [
            "This is aben, <em>二手</em>,<em>奔驰</em>焚枯食淡分类考试的分类看到数据量咖啡就是打了客服绝对时空裂缝!"
          ]
        }
      },
      {
        "_index" : "test",
        "_type" : "_doc",
        "_id" : "10",
        "_score" : 1.2969569,
        "_source" : {
          "title" : "This is aben, 二手!奔驰焚枯食淡分类考试的分类看到数据量咖啡就是打了客服绝对时空裂缝!"
        },
        "highlight" : {
          "title" : [
            "This is aben, <em>二手</em>!<em>奔驰</em>焚枯食淡分类考试的分类看到数据量咖啡就是打了客服绝对时空裂缝!"
          ]
        }
      },
      {
        "_index" : "test",
        "_type" : "_doc",
        "_id" : "8",
        "_score" : 1.2752849,
        "_source" : {
          "title" : "This is aben. 二手!奔驰焚枯食淡分类考试的分类看到数据量咖啡就是打了客服绝对时空裂缝!"
        },
        "highlight" : {
          "title" : [
            "<em>二手</em>!<em>奔驰</em>焚枯食淡分类考试的分类看到数据量咖啡就是打了客服绝对时空裂缝!"
          ]
        }
      },
      {
        "_index" : "test",
        "_type" : "_doc",
        "_id" : "3",
        "_score" : 0.062752485,
        "_source" : {
          "title" : "Regenwald Leasing 最大华人车行!限量超跑,优质二手车买卖,最高价现金收购二手车!"
        },
        "highlight" : {
          "title" : [
            "限量超跑,优质<em>二手</em>车买卖,最高价现金收购<em>二手</em>车!"
          ]
        }
      },
      {
        "_index" : "test",
        "_type" : "_doc",
        "_id" : "4",
        "_score" : 0.062752485,
        "_source" : {
          "title" : "【Regenwald Leasing】最大华人车行!限量超跑,优质二手车买卖,最高价现金收购二手车!"
        },
        "highlight" : {
          "title" : [
            "限量超跑,优质<em>二手</em>车买卖,最高价现金收购<em>二手</em>车!"
          ]
        }
      },
      {
        "_index" : "test",
        "_type" : "_doc",
        "_id" : "5",
        "_score" : 0.062752485,
        "_source" : {
          "title" : "Regenwald Leasing 最大华人车行! 限量超跑,优质二手车买卖,最高价现金收购二手车!"
        },
        "highlight" : {
          "title" : [
            "限量超跑,优质<em>二手</em>车买卖,最高价现金收购<em>二手</em>车!"
          ]
        }
      },
      {
        "_index" : "test",
        "_type" : "_doc",
        "_id" : "6",
        "_score" : 0.062752485,
        "_source" : {
          "title" : "Regenwald Leasing 最大华人车行 限量超跑,优质二手车买卖,最高价现金收购二手车!"
        },
        "highlight" : {
          "title" : [
            "Regenwald Leasing 最大华人车行 限量超跑,优质<em>二手</em>车买卖,最高价现金收购<em>二手</em>车!"
          ]
        }
      },
      {
        "_index" : "test",
        "_type" : "_doc",
        "_id" : "7",
        "_score" : 0.062752485,
        "_source" : {
          "title" : "【Regenwald Leasing】最大华人车行 限量超跑,优质二手车买卖,最高价现金收购二手车!"
        },
        "highlight" : {
          "title" : [
            "【Regenwald Leasing】最大华人车行 限量超跑,优质<em>二手</em>车买卖,最高价现金收购<em>二手</em>车!"
          ]
        }
      },
      {
        "_index" : "test",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 0.06209851,
        "_source" : {
          "title" : "【aben sky found】 最大华人车行!限量超跑,优质二手车买卖,最高价现金收购二手车!"
        },
        "highlight" : {
          "title" : [
            "限量超跑,优质<em>二手</em>车买卖,最高价现金收购<em>二手</em>车!"
          ]
        }
      },
      {
        "_index" : "test",
        "_type" : "_doc",
        "_id" : "2",
        "_score" : 0.06209851,
        "_source" : {
          "title" : "【aben sky found】最大华人车行!限量超跑,优质二手车买卖,最高价现金收购二手车!"
        },
        "highlight" : {
          "title" : [
            "限量超跑,优质<em>二手</em>车买卖,最高价现金收购<em>二手</em>车!"
          ]
        }
      }
    ]
  }
}

可以看到在部分高亮的结果中, 内容的前面一部分丢掉了.

在测试的时候, 尝试不加载外部字典(只使用默认加载的), 在7.7.0和7.15.2版本下结果一致.

从表面上看, 是当前面有英文, 且有感叹号或英文句号(点)时, 就会出现这个bug.

暂时还不知道是ES的bug还是ik分词器的bug.

TODO 这里做个记录, maybe以后可以找到问题的根源.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ES7.7中highlight的结果丢失部分文本的bug 的相关文章

  • 如何连接Kafka和Elasticsearch?

    我是Kafka的新手 我使用kafka通过logstash收集netflow 可以 并且我想将数据从kafka发送到elasticsearch 但是存在一些问题 我的问题是如何将 Kafka 与 Elasticsearch 连接起来 net
  • 如何用Python为ElasticSearch创建只读客户端?

    我想从 ES 读取数据 但不想意外向其中写入数据 无索引操作 这只是一种安全措施 以便以后修改查询函数的其他人不允许插入数据 当你说你想要只读客户端时 客户端强调您系统中的同一集群可能有其他客户端 然后阻止整个索引为只读将会阻止所有客户端的
  • 分割多重多边形

    我可以直接取出零件并把它们取出来作为它们自己的功能吗 或者这会涉及更复杂的东西吗 我正在尝试将其中一张地图拆分为较小的部分以对它们进行索引 https github com simonepri geo maps https github c
  • Elasticsearch 崩溃后无法恢复

    磁盘空间不足 导致 Elasticsearch 分片崩溃 三个节点现在为红色 两个节点已恢复 它们的状态为黄色 ES 的 CPU 利用率为 150 内存利用率很高 正在尝试恢复它们 但似乎存在一些版本匹配冲突 我清理了磁盘空间并删除了分片的
  • Elasticsearch TransportClient NetworkPlugin NoClassDefFoundError

    我期待将 Elasticsearch 集成到 Spring Boot Web 应用程序中 这是创建传输客户端的配置 Configuration public class ElasticsearchConfig private Transpo
  • 如何在弹性搜索中生成多个布尔查询的查询

    我想使用 spring 框架在 elasticsearch 中动态生成多个布尔运算的查询 我在elasticsearch中的数据就像 masterID
  • 从 App Engine 连接到 Kubernetes 引擎

    我们希望使用应用程序引擎灵活的流程来更新位于 Google Kubernetes Engine 上的 ElasticSearch 索引 我们需要通过 http s 地址连接到 ElasticSearch 推荐的方法是什么 我们不想将集群暴露
  • 如何编写Elasticsearch多个必须脚本查询?

    我想使用查询来比较多个字段 我有字段 1 到 4 我想搜索字段 1 大于字段 2 的数据 并且下面的查询工作正常 size 0 source field1 field2 field3 field4 sort query bool filte
  • ElasticSearch 定义自定义映射与默认“_doc”映射冲突

    尝试创建自定义映射类型时会发生此问题 为第一个插入弹性创建自定义映射后想要创建 doc映射类型和冲突就发生在这里 第一步我创建一个映射 mappings properties field1 type keyword field2 type
  • 将 ElasticSearch SearchResponse 对象转换为 JsonObject

    我想将elasticsearch搜索结果转换为Json对象 我还没有找到任何直接转换的正确方法 SearchResponse response client prepareSearch index setExplain true execu
  • 在弹性搜索中使用 GET/POST 时的不同结果

    我正在通过 Elastic Search Head 插件尝试弹性搜索 当我通过 POST 提交查询时 结果符合预期 但是 当我使用 GET 尝试相同的查询时 我总是会返回索引中的所有值 那么 如何通过 GET 将查询传递到弹性搜索服务器 以
  • Elasticsearch 单个字段的多个分析器

    我使用严格的预定义映射将不同类型的文档存储在单个索引中 它们都有一些字段 例如 body 但我希望在索引时对它们进行稍微不同的分析 例如 对特定文档使用不同的标记过滤器 并在搜索时以相同的方式处理 据我所知 分析器不能按文档指定 我还考虑使
  • 无法使用docker在Apple Mac芯片M1上启动elasticsearch

    在发布这个问题之前 我浏览了许多链接 例如 Kibana 无法在 Mac M1 上使用 docker 连接到 ElasticSearch https stackoverflow com questions 73160632 kibana c
  • search_after 在弹性搜索中如何工作?

    我一直在尝试在我们的应用程序中使用 Elasticsearch 但分页限制为 10k 对我们来说实际上是一个问题 并且由于必须超时问题 滚动 API 也不是推荐的选择 我发现 Elasticsearch 有一个叫做 search after
  • 在 Elasticsearch 中删除文件后回收磁盘空间

    当我从 Elasticsearch 中删除文档时 为什么我的 总大小 保持不变 尽管由于没有以前存储的数据而明显小得多 我读过有关索引优化的内容 但我不确定这是什么或如何做到这一点 Thanks 我确信 SO 和 Google 上都有大量与
  • 如何增加vm.max_map_count?

    我正在尝试在 Ubuntu EC2 计算机 t2 medium 中运行弹性搜索 但我收到消息 最大虚拟内存区域 vm max map count 65530 太低 至少增加到 262144 我怎样才能增加vm max map count v
  • ElasticSearch 映射对分组文档进行折叠/执行操作的结果

    有一个对话列表 每个对话都有一个消息列表 每条消息都有不同的字段和action场地 我们需要考虑到在对话的第一条消息中使用了动作A 在几条消息之后有使用的动作A 1过了一会儿A 1 1等等 有一个聊天机器人意图列表 对对话的消息操作进行分组
  • 即使禁用安全性,OAuth 令牌 API 也无法在 Elastic Search 中工作

    我是 Elastic search 新手 使用 Elastic search 版本 7 7 1 我想通过以下方式生成 OAuth 令牌弹性搜索文档 https www elastic co guide en elasticsearch re
  • Elasticsearch 在 Mac 上存储数据的位置

    类似的问题this one https stackoverflow com questions 24694201 where are data files of elasticsearch on a standard debian inst
  • Elasticsearch:预期的字段名称,但得到了 START_OBJECT

    我一直在尝试运行以下查询 但每次运行时都会收到以下错误 nested ElasticsearchParseException Expected field name but got START OBJECT field value fact

随机推荐

  • 设置button按钮背景色,及字体的颜色

    新建一个对话框工程 在对话框中添加一个按钮 然后 从button类继承一个子类 CNewButton 重载 PreSubclassWindow 修改按钮的属性 ModifyStyle 0 BS OWNERDRAW 告诉系统 用户手绘按钮 然
  • python练习

    题目 一个数如果恰好等于它的因子之和 这个数就称为 完数 例如6 1 2 3 编程找出1000以内的所有完数 from sys import stdout for j in range 2 1001 k n 1 s j for i in r
  • 泛统计理论初探——机器学习的欠采样算法

    统计学习 经典欠采样方法简介 机器学习中的欠采样方法 在之前的文章中己经介绍了重采样的方法和使用情况 本次文章将会介绍欠采样方法的原理和经典欠采样算法的步骤以及使用背景 从原理上来说 欠采样方法的思路是和重采样方法刚好相反的 因为重采样是针
  • 用于获得个股MACD数据及每日收盘数据的python程序

    用于获得个股MACD数据及每日收盘数据的python程序 几年前上一波股票牛市的时候 曾经编写了一个判断股价的python程序 最近几日股票市场又开始比较火热 估计有的朋友可能需要进行股票数据的获得和分析 现在把那个程序中用于获得macd数
  • STM32G0系列ADC扫描序列模式解读

    有人在使用STM32G0芯片的ADC模块时 往往因为扫描模式的理解不到位或选择不当导致些问题 这里就该话题做点简单分享介绍 不妨以一个实例展开 现在共用到ADC1模块的4个ADC通道 即1个片内Vrefint通道和其它三个外部通道CH8 C
  • 浏览器强制刷新页面

    Chrome官方推荐使用如下快捷键 就可以不使用页面缓存进行刷新 Windows和Linux操作系统 Shift F5 或 Ctrl Shift R Mac OS Cmd Shft R 如果上面方法没有效果 可以按下F12 Windows
  • 基于卡尔曼滤波进行四旋翼动力学建模(Simulink&Matlab)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 文献来源 摘要 由于近年来民用和军事领域对
  • redis的安装与配置

    解压redis包 make isntall进行安装 但是报错 找了半天 找到一个方法 在安装的时候加入参数 make MALLOC libc 就解决了 当然还有其他帖子的步骤 1 获取安装文件 wget http download redi
  • Caused by: java.lang.ClassNotFoundException常见异常解决方法!

    常见的Caused by java lang ClassNotFoundException异常原因 ClassNotFoundException属于checkException 检查异常 一般在项目启动的时候出现 出现该问题原因归纳为 1
  • 如何删除重复字符

    算法思路 第一种方法 蛮力法 最简单的方法就是把这个字符串看作是一个字符数组 对该数组使用双重循环进行遍历 如果发现有重复的字符 就把该字符置为 0 最后再把这个字符数组中所有的 0 去掉 此时得到的字符串就是删除重复字符后的目标字符串 代
  • vue3+ts的父子组件传参以及withDefaults、defineExpose用法介绍

    1 父组件给子组件传参 以及withDefaults用法介绍 父组件代码
  • 前端向后端请求数据,后端向数据库请求并回传过程

    一个select下拉框 点击不同的选项向后端请求相应机位的图片 1 首先在下拉框的 change 中添加向后端获取请求的接口 function getOtherImage camera axios get image other image
  • 前端例程20220906:霓虹灯效按钮

    演示 原理 按钮使用阴影实现发光效果 设置元素块加强外发光效果 设置为光标悬停时才显现 使用元素块定位到按钮下方 3D形变后进行模糊处理作为倒影 代码
  • 联想笔记本无线网络无法使用(无线开关已打开,但搜不到无线网络)

    今天 同事拿过来一台笔记本 说收不到无线网络了 插上有线可以上网 让给她看看 我看了一眼 果然是 插上网上后 是可以上网的 但就是收不到无线网络 本子是联想的 应该是很老的本子了 也没找到型号在哪 看了一下它的无线外置开关 是打开状态 但是
  • 铁腕军阀服务器无响应,铁腕军阀冬季攻势

    铁腕军阀冬季攻势是第一人称的3D动作射击类大作 游戏类型有点像半条命 通过杀敌可以获得游戏中的金币 然后购买更强力的武器来抵御一波又一波的敌人 游戏介绍 如果你是半条命系列的爱好者 那你可能会玩过一款叫Iron Grip The Oppre
  • GPIO口的pull up和pull down,no pull的意义以及怎么配置。

    一般来说 需要区分这个GPIO口用于输入还是输出 如果是output 那个一般选择no pull 这样 引脚才能根据你的output数据 进行正确输出 如果是input 那么需要看具体应用的默认输入值是0还是1 如果默认是输入0 则最好配置
  • 机器学习知识总结 —— 21. 什么是主成分分析

    文章目录 什么是PCA Principal Component Analysis 协方差矩阵 什么是协方差 协方差矩阵 特征值与特征向量 PCA降维 什么是PCA Principal Component Analysis 在机器学习中 PC
  • VSC/SMC(十五)——基于模糊逼近的积分滑模控制

    目录 前言 1 一阶系统积分滑模 1 1 一阶系统 1 2 控制器设计 1 2 1 选取积分滑模面 1 2 2 选取指数趋近律 1 2 3 Lypunov闭环系统稳定性证明 1 3 仿真分析 1 4 仿真结果 2 基于模糊切换增益调节的滑模
  • Win10下给Hyper-V配置网络——Bridging 和 Nat 模式

    Win10下给Hyper V配置网络 Bridging 和 Nat 模式 Hyper V 网络配置 桥接 好处 有 IP 可以被外部访问 Nat 没有 ip 外部不能访问 但可以访问外部 隐蔽性好 Hyper V 网络配置 yper V网络
  • ES7.7中highlight的结果丢失部分文本的bug

    本bug在windows版本 ES 7 7 0 和 7 15 2 中都可以再现 ik分词器已安装 并导入了扩展停止词 extra stopword dic Step1 先建立一个索引 在此之前 请确保已经安装分词器插件ik PUT test