2 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
常用短語問題沒有“神奇”的解決方案,
然而,處理這個(gè)問題的最佳方法,我覺得是使用N-gram概念。
基本上不是為單個(gè)單詞索引您的文本(因?yàn)轫敿?jí)術(shù)語聚合搜索僅限于索引術(shù)語)如果您對(duì)如何執(zhí)行此操作有特定想法或使用通用克標(biāo)記創(chuàng)建一個(gè)為您量身定制的新分析器我覺得過濾器對(duì)你很有用,因?yàn)閺椥运阉鏖_發(fā)人員很聰明(大概),他們的解決方案可能比你或我精心設(shè)計(jì)的更有效。
請(qǐng)注意,我不確定您的規(guī)模是多少,但此解決方案將使用更多磁盤空間并可能影響其他查詢效率。

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
我同意 Tom 的回答,因?yàn)闆]有適用于所有用例的解決方案。Elasticsearch 不知道如何對(duì)搜索詞進(jìn)行排序以便為您提供排名靠前的詞的列表。
例如,如果您在 Elasticsearch 實(shí)例中存儲(chǔ)推文,那么最熱門的搜索詞是最喜歡的詞嗎?轉(zhuǎn)發(fā)最多?您是否使用這兩個(gè)指標(biāo)的組合以及最近發(fā)布推文的時(shí)間?這實(shí)際上取決于您的用例。
您可以按頻率獲得最熱門的搜索詞,但您可能會(huì)包含諸如“and”或“the”之類的詞,這些詞不是很有用。為了防止這種情況,您必須考慮在存儲(chǔ)搜索短語時(shí)刪除停用詞,而不僅僅是在檢索時(shí)(請(qǐng)參閱:elasticsearch stopwords)。Elasticsearch 提供了一組開箱即用的語言分析器,提高了文檔語料庫的搜索性能(請(qǐng)參閱:使用 elasticsearch 語言分析器)。
添加回答
舉報(bào)