[请益] Elastic Search结果惨烈怎么修

楼主: DOC (锻炼的还不够)   2024-01-15 17:47:05
小弟是网络公司的PM,负责一个跟景点图资有关的产品,目前服务内有个进50万的POI资
料库,但是让用户搜寻时,跑出来的结果非常糟糕,而且负责此项目的同事说能优化的都
做了,已经无法再调整。想问问看版上的大神能不能开示怎么处理比较好
被检索的字段
poiNameCN:晴空塔
poiNameEN:Tokyo Skytree
nickname1:天空树
nickname2:新东京铁塔
adminDivisionCN:日本/东京都/东京都心/墨田区
adminDivisionEN:Japan/Tokyo/Special wards/Sumida
原本理想的情况是,不管用户是输入景点的中文或英文名称、或是输入别名,或是输入名
称加上行政区划内的某一层(例如输入:东京 天空树),都可以用这些字段来找出关连,
可是实测之后的结果却很糟
想问问有没有大神有这种让elsatic search同时比同一个物件的多个字段,再排关联度的
经验,能给小PM一点建议,让我可以再去争取重开这个优化的需求
感谢!
作者: srwhite (鲁蛇阿白)   2024-01-15 17:55:00
50万笔听起来没有很大(? 你们是用like去查吗
作者: kewang (652公共汽车)   2024-01-15 18:06:00
是同行吗 xd https://techblog.funliday.com 里面我有写一些可以参考,但都是旧版的方式了,有空再写新版的方式
作者: B0988698088 (废文少女小円♥)   2024-01-15 18:23:00
怎么个糟法?连举例都不会不要当pm害人好吗 另外官方不是有sup吗?官方对于这case给的回应是什么
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2024-01-15 18:25:00
发现k旺?
作者: Lordaeron (Terry)   2024-01-15 18:26:00
我认为B0988698088 应该有SOLUTION的,出一篇吧。
作者: alihue (wanda wanda)   2024-01-15 18:31:00
你要先厘清是 recall 还是 ranking 问题。换句话说是搜寻结果没有命中还是单纯排序太后面。此外对 input 拆词后是采用什么样语法搜寻,以及需要检查拆词后的结果符不符合预期。然后同义词机制要重新设计,通常是在 query time先展开比较单纯好维护。然后地点看你是想要真的依照经纬度找还是单纯用关键字,算法差很多
作者: johnny9144 (Johnny)   2024-01-15 18:34:00
如果是你这需求,从 schema design 就错了,不如说说你们做了什么优化好了XD
作者: alihue (wanda wanda)   2024-01-15 18:35:00
排关联度就单纯很多,同常就命中的词 + BM25 + 设字段权重。虽然进阶的应该要用使用者 log 去用 ML 做 ranking,不过看起来你们的进度连初阶 elasticsearch 功能都还没正确使用,也就是我前面说的你们可能连 recall 都不好
作者: johnny9144 (Johnny)   2024-01-15 18:36:00
其次,你们的需求&量级用到 elasticsearch 感觉有点杀鸡用牛刀了,可以试试 Meilisearch 这种小型的,你们应该会快乐很多,也不用懂那么多
作者: alihue (wanda wanda)   2024-01-15 18:37:00
其实你可以善用 chatGPT 应该可以有简单的理解。也可以尝试自己架 elasticsearch,应该还不需要写到 code,除了汇大量资料以外
作者: layer0930 (皇室御渍梨子酱)   2024-01-15 19:00:00
这是pm责任吗?
作者: johnbill (cj钟钟)   2024-01-15 19:07:00
连问题都说不清楚 这PM
作者: pvq212 (pvq212)   2024-01-15 19:37:00
看你说明是想要用天空树也搜寻到晴空塔之类的,那就是同义词然后再来针对搜寻的关键字去做中文、英文分词,资料入库时就会去做索引,再加上个英文大小写或是简繁的 filter,后面再记录一下搜寻热门关键字,去维护 dict 或是 synonym
作者: qazwsx12 (SexAnimal)   2024-01-15 21:00:00
这问题有说不好吗?好奇
作者: ku399999   2024-01-15 21:26:00
感觉也没到不好 就不足以判断问题在哪里吧
作者: internetms52 (Oaide)   2024-01-15 22:04:00
用json dsl组full text search理论上会得到你要的东西才对,如果还是不行,那就是分词问题,比较不好处理喔
作者: layer0930 (皇室御渍梨子酱)   2024-01-15 23:46:00
他问题不是同义词,而是搜寻的结果差强人意这东西很主观这不太适合新手写..
作者: guanting886 (Guanting)   2024-01-16 06:17:00
你家工程师该烦恼的事丢给你在烦恼快跑ㄅ
作者: jigfopsda (jigfopsda)   2024-01-16 08:08:00
先定义一个分数来表示“糟糕程度”再来根据分数做调整这个分数要跟你们商业上的需求一致
作者: DrTech (竹科管理处网军研发人员)   2024-01-16 08:10:00
这发文,大概连怎样评价搜寻引擎的指标都不懂吧,只靠感觉。做PM啊,先去了解一下怎么样量化自己产品的品质水准。1.先学搜寻引擎常见评价指标。2. 根据自己产品,选择适合的指标(别硬抄网络上的)3. 设计一个上线前,必需测过的多个测试案例。评价测试案例得到的分数。4.针对没过的案例,再来与技术人员讨论,这个案例怎么改善。没这流程,只会造成搜寻引擎改了A,却产生新的Bug或副作用而已。不要靠"感觉"或"单一case"来决定好坏。硬是解决了一个case,只常会造成其他case变差。
作者: jigfopsda (jigfopsda)   2024-01-16 09:01:00
推楼上,做任何事情前最重要的就是先把 metric 订好
作者: ZakuSIN (SIN)   2024-01-16 10:07:00
实作结果与需求不符,怎不直接打回去重弄就好了?能优化的都做了 => 结果很烂 = 没做
作者: sw12 (专注.幽默)   2024-01-16 11:12:00
....我觉得语气没不好。大家压力好大...
作者: DarkIllusion (′・ω・‵)   2024-01-16 11:39:00
遇到鸟PM大家火气都很大
作者: untitled (Causality)   2024-01-16 12:41:00
先确认一下,是 ElasticSearch 7 还是 8 呢?
作者: ns1234 (FAR)   2024-01-16 18:56:00
expalin看看分数吧,搞不好你们有动到排序他会完全不吃scor
作者: peter98 (新兵)   2024-01-16 23:50:00
ES...好久没听到这个词了 都是说OS惹拔
作者: bitcch (必可取)   2024-01-17 22:16:00
好奇你的糟是指搜寻速度慢 还是达不到想要的效果
作者: darkMood (瞬间投射)   2024-01-17 22:36:00
嘻嘻,终于有读书人的问题了,不是码工的问题了。
作者: FXW11314 (soukai)   2024-01-18 21:15:00
嘘射后不理
作者: ashlikewing   2024-01-19 00:21:00
连mapping都没放上来也想问ES问题喔

Links booklink

Contact Us: admin [ a t ] ucptt.com