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 的相关文章

随机推荐

  • 设置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