※ 本文轉寄自 ptt.cc, 文章原始頁面
看板Soft_Job
標題

[請益] Elastic Search結果慘烈怎麼修

留言64則留言,26人參與討論
推噓8 ( 14644 )
小弟是網路公司的PM,負責一個跟景點圖資有關的產品,目前服務內有個進50萬的POI資 料庫,但是讓用戶搜尋時,跑出來的結果非常糟糕,而且負責此項目的同事說能優化的都 做了,已經無法再調整。想問問看版上的大神能不能開示怎麼處理比較好 被檢索的欄位 poiNameCN:晴空塔 poiNameEN:Tokyo Skytree nickname1:天空樹 nickname2:新東京鐵塔 adminDivisionCN:日本/東京都/東京都心/墨田區 adminDivisionEN:Japan/Tokyo/Special wards/Sumida 原本理想的情況是,不管用戶是輸入景點的中文或英文名稱、或是輸入別名,或是輸入名 稱加上行政區劃內的某一層(例如輸入:東京 天空樹),都可以用這些欄位來找出關連, 可是實測之後的結果卻很糟 想問問有沒有大神有這種讓elsatic search同時比同一個物件的多個欄位,再排關聯度的 經驗,能給小PM一點建議,讓我可以再去爭取重開這個優化的需求 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.105.193 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1705312027.A.A80.html

64 則留言

srwhite, 1F
50萬筆聽起來沒有很大(? 你們是用like去查嗎

kewang, 2F
是同行嗎 xd https://techblog.funliday.com 裡面我有寫一

kewang, 3F
些可以參考,但都是舊版的方式了,有空再寫新版的方式

B0988698088, 4F
怎麼個糟法?連舉例都不會不要當pm害人好嗎 另外官

B0988698088, 5F
方不是有sup嗎?官方對於這case給的回應是什麼

Sunal, 6F
發現k旺?

Lordaeron, 7F
我認為B0988698088 應該有SOLUTION的,出一篇吧。

alihue, 8F
你要先釐清是 recall 還是 ranking 問題。換句話說是搜尋

alihue, 9F
結果沒有命中還是單純排序太後面。此外對 input 拆詞後是

alihue, 10F
採用什麼樣語法搜尋,以及需要檢查拆詞後的結果符不符合

alihue, 11F
預期。然後同義詞機制要重新設計,通常是在 query time

alihue, 12F
先展開比較單純好維護。然後地點看你是想要真的依照經緯

alihue, 13F
度找還是單純用關鍵字,演算法差很多

johnny9144, 14F
如果是你這需求,從 schema design 就錯了,不如說

johnny9144, 15F
說你們做了什麼優化好了XD

alihue, 16F
排關聯度就單純很多,同常就命中的詞 + BM25 + 設欄位權

alihue, 17F
重。雖然進階的應該要用使用者 log 去用 ML 做 ranking,

alihue, 18F
不過看起來你們的進度連初階 elasticsearch 功能都還沒正

alihue, 19F
確使用,也就是我前面說的你們可能連 recall 都不好

johnny9144, 20F
其次,你們的需求&量級用到 elasticsearch 感覺有

johnny9144, 21F
點殺雞用牛刀了,可以試試 Meilisearch 這種小型的

johnny9144, 22F
,你們應該會快樂很多,也不用懂那麼多

alihue, 23F
其實你可以善用 chatGPT 應該可以有簡單的理解。也可以嘗

alihue, 24F
試自己架 elasticsearch,應該還不需要寫到 code,除了匯

alihue, 25F
大量資料以外

layer0930, 26F
這是pm責任嗎?

johnbill, 27F
連問題都說不清楚 這PM

pvq212, 28F
看你說明是想要用天空樹也搜尋到晴空塔之類的,那就是同義

pvq212, 29F

pvq212, 30F
然後再來針對搜尋的關鍵字去做中文、英文分詞,資料入庫時

pvq212, 31F
就會去做索引,再加上個英文大小寫或是簡繁的 filter,後

pvq212, 32F
面再記錄一下搜尋熱門關鍵字,去維護 dict 或是 synonym

qazwsx12, 33F
這問題有說不好嗎?好奇

ku399999, 34F
感覺也沒到不好 就不足以判斷問題在哪裡吧

internetms52, 35F
用json dsl組full text search理論上會得到你要的

internetms52, 36F
東西才對,如果還是不行,那就是分詞問題,比較不好

internetms52, 37F
處理喔

layer0930, 38F
他問題不是同義詞,而是搜尋的結果差強人意

layer0930, 39F
這東西很主觀

DrTech, 51F
不要靠"感覺"或"單一case"來決定好壞。硬是解決了一個case

DrTech, 52F
,只常會造成其他case變差。

jigfopsda, 53F
推樓上,做任何事情前最重要的就是先把 metric 訂好

ZakuSIN, 54F
實作結果與需求不符,怎不直接打回去重弄就好了?

ZakuSIN, 55F
能優化的都做了 => 結果很爛 = 沒做

sw12, 56F
....我覺得語氣沒不好。大家壓力好大...

DarkIllusion, 57F
遇到鳥PM大家火氣都很大

untitled, 58F
先確認一下,是 ElasticSearch 7 還是 8 呢?

ns1234, 59F
expalin看看分數吧,搞不好你們有動到排序他會完全不吃scor

peter98, 60F
ES...好久沒聽到這個詞了 都是說OS惹拔

bitcch, 61F
好奇你的糟是指搜尋速度慢 還是達不到想要的效果

darkMood, 62F
嘻嘻,終於有讀書人的問題了,不是碼工的問題了。

FXW11314, 63F
噓射後不理

ashlikewing, 64F
連mapping都沒放上來也想問ES問題喔