2015-12-16 66 views
0

在elasticsearch中,有沒有一種方法可以提高查詢詞在文檔中彼此接近的文檔的得分?這不僅僅是關於單詞在一起,因爲這可以通過使用帶狀皰疹來解決,而是關於可能存在另一個不重要的詞的鄰近詞。elasticsearch word proximity

例子:

文件1:

close words in documents detection 

文件2:

close words in detection documents 

查詢:

close documents 

所以我想獲得更高的分數第一個文件和一個lowe第二個。

如果這些詞緊接在一起,我會使用帶狀皰疹和兩個或三個詞的標記。但是,這種方法沒有考慮到彼此接近的詞語。

回答

1

以下查詢是elastic docos中的一種修改形式,應符合要求。它使用稱爲「匹配短語」的ElasticSearch中的鄰近功能。

POST /my_index/my_type/_search 
{ 
    "query": { 
     "match_phrase": { 
     "text": { 
      "query": "close documents", 
      "slop": 50 
     } 
     } 
    } 
} 

上面的slop參數控制了文檔被認爲是否匹配的程度。從技術上講,這是必須完成的動作數量,以便在查詢中使用更多的單詞時它會變得更加複雜,但使用兩個術語可以簡化距離。除此之外,他們應該靠近,這是我們想要的。

+0

請注意,當使用過高的斜坡時,單詞順序可能會改變(即「文檔靠近我」也會匹配),從而影響評分。 – Val

相關問題