2016-01-20 56 views
1

我正在嘗試找出解決此問題的最佳方法。假設我有一個用戶正在輸入一個簡短的句子,並且我想將這個句子(基本上是一個查詢)與分配給用戶的一小組文檔進行匹配。我面臨的問題是,與谷歌搜索不同,在谷歌搜索中,與低度相關的文檔高度相關的列表是有意義的,我想在沒有用戶干預的情況下自動選擇這些文檔的子集。有什麼辦法可以過濾掉「低關聯性」文檔?按相關度過濾來自ElasticSearch的結果

在研究這個問題時,答案似乎是否定的,因爲elasticsearch的_score不是從查詢到查詢的一致規模(並且文檔狀態min_score是愚蠢的以便使用)。有沒有一種方法可以過濾掉那些沒有至少達到給定查詢的最大_分數的90%的_score的結果(我相信這可以用處理結果的語言完成,如果ES提供這種結果,一些內置的功能)?如何過濾不匹配多個詞條的文檔(因此只有一個詞條匹配的文檔會被刪除)?

感謝您的任何見解!

+1

你能給我們幾個樣本文件,你想要什麼,以便我們可以更好地理解? – ChintanShah25

+0

這可能有點做作,但是:可以說,用戶正在輸入「我真的很喜歡這款新的android三星手機」,並且這些文檔中的短文標題如下:「您需要知道的一切關於Android手機「,」三星和LG手機「,」愛和其他一切「等。前兩者在匹配兩個詞時具有較高的相關性,而另一個則較低(匹配一個詞)。所以我會試圖過濾出不太相關的那些(我知道這可能是一個奇怪的任務,一般來說,只是好奇,如果任何人有這樣的想法) – mrquintopolous

回答

0

那麼Minimum Should Match選項呢?

+0

這似乎很接近,但也許我不明白什麼一個可選的條款是。在這種情況下,我想說文檔需要匹配多個術語,而不是查詢中的額外子句。那有意義嗎?仍在學ES語言 – mrquintopolous

+0

是的。你可以像「2個或更多的術語必須匹配」那樣說一些東西,或者你可以說「75%的術語必須匹配」,或者你構建了一個複合策略,明確命名必須匹配查詢的術語的百分比或數量條款數量。 –

+0

@ PeterDixon-Moses有任何指針或鏈接,我可以找到更多關於如何在查詢中設置的指針或鏈接? – mrquintopolous