问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

es实现公司简称匹配公司全称

发布网友 发布时间:2023-05-24 17:20

我来回答

1个回答

热心网友 时间:2024-12-03 01:52

假设XY是某大型集团,集团下有XY金融科技有限公司,XY银行有限公司,XY证券有限公司等子公司

目标:用es实现公司简称匹配到公司全称,且尽可能准确
例如,XY金科能匹配出XY金融科技有限公司,但不希望匹配出XY银行有限公司和XY证券有限公司

如果用mysql的like,肯定达不到目标,因为"金融科技"中,"金"和"科"不连续

如果用ik分词器,XY金科也会匹配出XY银行和XY证券,因为都包含XY

于是有了另一个方案:
绝大多数情况下,公司简称的每一个字,都在公司全称里出现,且简称里每个字的出现顺序,跟全称里的出现顺序一致。
比如X、Y、金、科这四个字,在"XY金融科技有限公司"里都出现,且顺序一致。
如果能保证这个效果,匹配精确度应该挺高。

要实现公司简称的每一个字都在公司全称里出现
可以修改设置,在建立倒排索引时使用standard分词器,对文档按字拆分,查询时也指定standard分词器

但是这样的问题是,不能保证顺序,XY金科可以匹配出“XY科技金融有限公司”

查阅资料,发现match_phrase可以保证查询语句的分词结果,在字段的分词结果里都包含,且顺序相同,且必须连续。
但是问题来了,使用standard分词器时,“XY金科”的分词结果是X、Y、金、科,这四个字在“"XY金融科技有限公司”的分词结果中不连续,无法匹配。

查阅资料,发现可以通过配置slop,告诉match_phrase查询词条能够相隔多远时仍然将文档视为匹配,但是,由于公司简称和公司全称都不固定,slop也无法确定。
如果slop长度太小,简称会匹配不上全称,比如文档“XY金融科技有限公司”中“金”和“科”隔了1个字,“金”需要移动1次才能跟“科”相邻,所以slop>=1时,“XY金科”才能匹配上“XY金融科技有限公司”,但是如果查询词条的间隔大于设置的slop,又匹配不上。

如果slop设置的太大,就保证不了查询语句分词后结果在文档的分词结果中顺序一致,以下图为例,如果“金”移动到语句末尾时,移动次数<slop,就会继续移动,最后还是有可能匹配到“科”
(注:不清楚slop的移动规则,下图中slop设置为3同样可以匹配出两条结果)

后来,终于想到可行的方案
先把字段类型改为keyword,即索引时不分词,再使用正则表达式查询,在每一个字间加上*通配符,比如"XY金科"的正则表达式是"*X*Y*金*科*",这样又能保证每个字都出现,也能保证顺序
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
路由器网线一米多少钱 东芝电视怎么投屏安卓手机 东芝电视怎么投屏 东芝电视投屏功能在哪里 指甲根部半月白 ...在指甲中部黑线长起 还有就是月牙上有白色一块 都在同一个指_百度... 我农业银行五年定期无密码存款,身份证没了,仅凭身份证复印件和存款单... 混凝土强度回弹怎么测算推定值,是否满足要求?一篇文章讲明白_百度知 ... 发动机舱有胶皮味跟安装防盗器有关系吗 cb400f启动后有股胶皮味道 一个袋子装了半袋米,倒出三分之一多1千克后还剩19千克... 脸部皮肤松弛会怎样 旋转旋转的拼音 古诗十九首的历史语境分析?快要答案 “历史总是惊人的相似”应用于什么语境 百万巨鳄最后老头死了没有 美国电影关于末世的有一个老头的一艘船叫什么 老头买5套房子第几集 &quot;一个老头挑着两个筐&quot;是什么成语? 魔钟的故事 有一部电视剧是爷爷编筐子给孙女上学的,很苦的片子 一个老头编筐的段子说明什么 编筐老头什么梗 嵌顿这个词是什么意思?我就想知道这个词是什么意思 冬霰的诗句冬霰的诗句是什么 冬霰的引证解释冬霰的引证解释是什么 按照现行劳动法规定,年假是按自然年度算还是按入职日期的周年算? 年休假中的&quot;参加工作满一年&quot;具体是什么样一个概念? 是一周年,还是按每... 工会和谐家庭申报表怎么填 blanket是什么意思 解释blanket一词的含义? 文学具有哪些基本特征? 谁知道深圳地名的由来? 体检契调规则是什么意思 选调生体检和其他公务员有什么不一样吗 河南选调生体检的标准是什么? 选调生有体检吗? 长毛对虾有什么营养价值 过年送大虾行吗? 查一下网名是“孞杺”的人的qq号 心加部首 电脑开机后黑屏左上角显示英文字母y 即使年年不见也要岁岁平安出自 即使生生不见,也要岁岁平安出处 下列项目管理属于管理工作流程组织的有( )。 ever since的意思,与since有区别吗 ever since和since有什么区别啊? 《会计实操专业能力证书》有用吗?为什么要学会计实操 死亡之门能力如何强化 帮孩子开启智慧之门系列 杂霸的网络解释杂霸的网络解释是什么 怎样才算实现了养老自由?