Full-Text-Search

Elasticsearch 和產品特性

  • December 10, 2014

我有一個關於彈性搜尋的小問題。假設我有一個包含要銷售的產品的數據庫,例如電子商務。

我知道 elasticsearch 可以幫助我找到最好的產品,例如對描述進行全文搜尋和按分數排序。

假設有人在尋找運動鞋,我不賣,但我確實賣鞋。向使用者展示我沒有的最佳方式是什麼?全文搜尋肯定會在結果中為我提供日常鞋子,因為“鞋子”一詞在查詢中,但我希望使用者知道我不賣任何東西,而不是看到與他不匹配的產品詢問。

是設置一個分數門檻值然後玩到有好結果那麼簡單,還是有具體的設置?

我也對與彈性搜尋無關的通用答案感興趣。

非常感謝!

當每個文件都與鞋子有關時,“鞋子”這個詞可能對相關性得分影響不大,在許多情況下這可能足以作為過濾器。儘管如此,正如您所指出的,如果沒有運動鞋並且文件包含多次出現的“鞋子”,則該文件可能被認為足夠相關以包含在結果中,並且沒有與實際運動鞋的競爭,它將位於頂部的集合。

但是,如果每次搜尋都是針對鞋子的,那麼鞋子的任何通用術語都將沒有多大意義,您可能希望從索引(可以通過停止列表完成)或搜尋(可以通過令牌過濾器)。

在這兩種情況下,“鞋子”的出現都不會對搜尋結果產生影響,因此您最終會出售一雙“感覺像運動鞋”的全能運動鞋,而這恰好是結果集中唯一的運動鞋。

當我們去除冠詞和介詞(如“the”和“on”)的重要性時,在基於語言的優化中使用相同的概念。

這幾乎可以應用於任何文本搜尋,包括 ElasticSearch 和 Oracle Text。

引用自:https://dba.stackexchange.com/questions/61010