基于match_phrase搜索的分词优化

news2024/11/27 10:43:46

ES 的match_phrase 搜索需要完整匹配输入的内容,比如我们搜索 ‘中国人民’ ,要保证的是doc中必须有 ‘中国人民’ 的内容出现。再比如我们搜索 ‘国人民’ 时,结果集中的 doc 中就要有 ‘国人民’ 的内容。一般在使用match 或 term 搜索的时候会引入词库,比如 ik 、 jieba 都利用词库来分词,之后按照分词粒度搜索。

然而match_phrase 的搜索背景下,搜索的内容有可能不是一段被完整分词的内容比如上面的例子 ‘国人民’。所以无法利用分词召回内容。取而代之的是使用 standard 或 ngram-1 先对 doc 进行最细粒度分词,搜索的时候也是按照最细粒度的单字进行匹配搜索。

下面以入库文档内容:'应付项目的增加' 为例

执行查询:

由于搜索text中的四个token 以及它们之间的相对位置和document中一样,所以能够搜索到入库的document。

这样做的原因是在短语搜索时,由于无法预判用于执行搜索的query文本,所以为了支持短语搜索,现有的技术将会在索引入库文档时,将文档中的每一个字当成一个独立的term,之后再存储到倒排索引中。而在搜索的时候,使用相同的逻辑将query文本的每一个字当成一个独立的term,然后从库中找同时包含所有query term的文档,接着在初步筛出来的文档中找出满足在文档中出现的顺序和query中的一致的文档作为最后结果。

当我们输入的搜索内容较多的时候,需要处理的单字也是成线性增长,性能也会有显著的下降;对此提出使用新的分词策略,修正了ik 、jieba等主流的分词器的分词缺点;

以下是新分词器的分词原理:主要特征是在index时将文本进行穷举式分词,也就是首先对于单个字的处理成一个term,之后处理多字词,并且这些多字词使用的position为第一个字(或最后一个字,通过参数控制)对应的term的position,然后将这些分词的结果全部放到倒排索引中,供后续query查找。在search时将搜索内容按照同样的position处理逻辑处理为一段无重复的分词,使用search分词器分词好的term进行搜索。

继续使用上面的例子,但是分词使用优化后的index分词器:

执行查询,这时使用search分词器:

连接关系:index 分词器 和 search 分词器是ES内的两个分词组件,没有直接的连接关系,通过框架内的流程顺序建立关系。逻辑上的关联关系无论其分词粒度不同,但是得到的分词term的position都是一样的。以上面为例:search text 分词结果(目的:0,增加:2) 能够匹配到index (目的:3,增加:5)。这也是search 分词器解析的短语搜索时能够匹配index 分词器分解的文档的原因。

github: GitHub - muhao1020/elasticsearch-analysis-maxword at master

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1172979.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DL Homework 6

目录 一、概念 (1)卷积 (2)卷积核 (3)特征图 (4)特征选择 (5)步长 (6)填充 (7)感受野 二、探究不同卷…

植物花粉深度学习图片数据集大合集

最近收集了一波有关于植物花粉的图片数据集,可以用于相关深度学习模型的搭建,废话不多说,上数据集!!! 1、23种花粉类型805张花粉图像数据集 关于此数据:花粉种类和类型的分类是法医抱粉学、考…

2023年中国金融控股公司研究报告

第一章 行业概况 1.1 定义 金融控股公司这一术语最初源自美国,特别是在美国的《金融服务法案》关于银行控股公司组织结构的条文中,首次出现了“金融控股公司”(Financial Holding Company)这一法律术语,尽管法案中并…

2023年【高压电工】报名考试及高压电工最新解析

题库来源:安全生产模拟考试一点通公众号小程序 高压电工报名考试考前必练!安全生产模拟考试一点通每个月更新高压电工最新解析题目及答案!多做几遍,其实通过高压电工作业考试题库很简单。 1、【单选题】 ()是指继电器不动作时处于…

Windows 内置Linux子系统的配置(From WSL1 to WSL2)

目录 我是如何从WSL1转到WSL2的? WSL1与WSL2的功能区别: 配置下载源 SSH配置 优雅使用windows的Linux子系统 我是如何从WSL1转到WSL2的? 第一次安装的子系统是WSL1的,因为不能使用systemctl ,以及因为WSL1没有完整的Linux内核,所以使得WSL1很多命令…

vivado查看报告和消息1

AMD Vivado ™ 集成设计环境 (IDE) 可生成报告和消息 , 以便告知您各种工具交互期间的设计或设计进程状态。报告由 您( 或工具 ) 在执行设计流程中的任意关键步骤时生成。报告可汇总有关设计的具体信息。 本工具可在设计进程中每个步骤自动…

软通杯算法竞赛--周赛题目(一)

目录 一、S属性大爆发 二、日期杯 三、 三人行必由我师 四、集合之差 五、咱们计算机不懂烷烃 六、适度跑步健康长寿 一、S属性大爆发 测试用例 5 esS qwert codeforces PoSgju LkkJKkO 输出案例 二、日期杯 输入案例: 3 2022 2022 11 1900 2100 15 1989 20…

EtherCAT主站写从站EEPROM抓包分析

0 工具准备 1.EtherCAT主站 2.EtherCAT从站(本文使用步进电机驱动器) 3.Wireshark1 抓包分析 1.1 报文总览 本文主站设置从站1字地址为0的EEPROM数据为0x3C00(设置完毕后请还原字0的EEPROM数据),使用Wireshark抓取到…

检索已删除的视频方法,12 个最佳 Android 视频恢复应用程序/软件

您可能倾向于定期从 Android 设备中删除不必要的视频,同时保留精美的视频以使其保持井井有条。然而,有些人在删除一些有价值的视频而不是无用的视频时无意中犯了错误。如果您错误地从移动设备中删除了视频或清除了其内存,您可能想知道是否有办…

某大厂伺服驱动器量产方案

本文介一款大厂量产伺服驱动器方案!带2500线省线式编码器,17位增量编码器,20位绝对值编码器!标配CANopen、高精度运动控制,高速总线通讯,主芯片28335FPGA,已验证过,带can和485通讯&a…

OSError: libomp.so: cannot open shared object file: No such file or directory

报错:OSError: libomp.so: cannot open shared object file: No such file or directory https://stackoverflow.com/questions/52401840/what-is-the-ctypes-cdll-default-path 没有libomp.so 总算找到啦!链接 export LD_LIBRARY_PATH/usr/lib/llvm…

【java学习—十二】文件字符流(3)

文章目录 1. 文件字符输入流2. 文件字符输出流3. 字符流完成拷贝文件 1. 文件字符输入流 读取文件操作步骤 : (1)建立一个流对象,将已存在的一个文件加载进流。 FileReader fr new FileReader(“Test.txt”);(2)创建…

C站你好,和你相遇的第1825天

文章目录 机缘收获日常成就憧憬 机缘 ①. 你好,C站 ②. 初识JAVA编程,遇到问题,粘贴问题百度搜索,大都数出来的解决方案都能在C站得到解决,对C站有一定的好感 ③. 起初在CSDN写博客,主要用来记录日常学习过程中的笔记、不断调整自己的笔记,如JAVA基础、框架、虚拟机等,为后…

【Linux】搭建Linux环境等——小喵爱上了林利克斯1

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…

Elasticsearch:使用你的 RAG 来进行聊天

什么是人工智能中的检索增强生成(RAG)? 检索增强生成 (RAG),与你的文档聊天的超级英雄,架起信息检索和文本生成世界的桥梁! 这就像福尔摩斯和莎士比亚联手解决需要大量知识的复杂任务。 RAG 突然介入&…

分享96个工作总结PPT,总有一款适合您

分享96个工作总结PPT,总有一款适合您 工作总结PPT下载链接:https://pan.baidu.com/s/18AriuVGxwINHrmgndX74dw?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易…

【数智化案例展】新余钢铁集团——华院智能配煤解决方案

‍ 华院计算案例 本项目案例由华院计算投递并参与数据猿与上海大数据联盟联合推出的《2023中国数智化转型升级创新服务企业》榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 华院智能制造基于对工业生产场景的深入理解,秉承算法和应用场景相结合…

2023年金融科技建模大赛(初赛)开箱点评

各位同学大家好,我是Toby老师。2023年金融科技建模大赛(初赛)从今年10月14日开始,11月11日结束。 比赛背景 发展数字经济是“十四五”时期的重大战略规划。2023年,中共中央、国务院印发了《数字中国建设整体布局规划》…

速学数据结构 | 用队列实现栈你都被难住了?那是你没掌握好技巧

🎬 鸽芷咕:个人主页 🔥个人专栏:《Linux深造日志》《C干货基地》 ⛺️生活的理想,就是为了理想的生活! 📋 前言 🌈hello! 各位铁铁们大家好啊,栈和队列我们都学过了那么试试用队列实…

CleanMyMac X4.15试用版许可证

如果你拥有苹果电脑,那么就非常有必要在Mac上安装CleanMyMac,不是只有Windows才会产生垃圾,Mac同样的也会,定期清理Mac垃圾,可以释放磁盘空间。 CleanMyMac X 是一款流行的 Mac 清理工具,具有许多功能&…