2017-01-09 75 views
0

我想查詢和比較兩個MLT查詢分數Elasticsearch查詢分數,但有點糊塗基於我所讀到這裏 https://www.elastic.co/guide/en/elasticsearch/guide/current/practical-scoring-function.html比較多個查詢

即使查詢規範的目的是從 不同的查詢結果可比較,它不工作得很好。相關_score的唯一 目的是按正確的順序對當前的 查詢的結果進行排序。 您不應該試圖比較不同查詢的 相關性分數。

,如果我跑了MLT查詢和文件「A」類似於記錄「B」和得分爲0.4,相反, 運行MLT查詢文檔「B」類似於文件「A」和其分數是2.4。

我期望得分是基於MLT中匹配的標記相同的,但事實並非如此。

另外, 如果我跑的MLT查詢和文檔「A」類似於文件「B」和得分是0.6和 運行的另一個MLT查詢文檔「C」類似於文件「A」和其得分是4.7。

所以我的問題是:

  1. 這是否意味着C是更類似於一個比乙?
  2. 另外,當分數不同時,我用什麼方法比較elasticsearch中的多個查詢的最佳方式?

感謝, 菲爾 -

回答

1

1.

不,不。正如你在你的問題中提到的那樣,你不應該比較不同查詢的分數。如果您想獲得哪些文檔與C最爲相似的有意義的結果,則應該爲文檔C生成MLT查詢,然後使用該查詢進行搜索。

由於MLT查詢的工作原因,這是非常真實的。 MLT試圖從您的文檔中生成一個有趣的術語列表(基於索引中的術語庫)並搜索它們。由文檔A生成的術語集可能與文檔B生成的術語集大不相同,因此,當從B發現A時,即使文檔本身明顯具有相同的重疊,反之亦然,得分會非常不同。

2.

不要。收聽文檔。得分爲,只有被設計用於對文檔與生成它們的查詢的匹配程度進行排序。在這種背景下使用它們是沒有意義的。重新思考你正在努力完成的事情。