2017-09-03 60 views
2

我正在使用彈性搜索5.3,並提供你沒有意思的功能,我想限制短語或短語建議者的上下文爲,只有用戶的文檔不是索引中的所有文檔。這裏是一個使用期限建議者(返回基於所有索引文件的建議)我現在的_search查詢體:如何按特定字段過濾彈性搜索詞或短語建議者?

{ 
    "suggest": { 
     "text": "docyment", 
     "title_correction: { 
      "term": { 
       "size": 2, 
       "prefix_length": 3, 
       "field": "title", 
       "analyzer": "standard", 
       "min_doc_freq": 1, 
      } 
     } 
    } 
} 

我可以看到phrase_suggester是過濾了部分過去(check this issue),但它似乎已被棄用並由上下文建議者取代(僅限完成字段儘管),所以它不適合我的情況。

我需要的是有一個過濾器,如:"filter": {"term": {"user_id": 12345}}所以建議將根據用戶的文件。

我將不勝感激,如果有人能想出的答案我的問題:

0-爲什麼過濾器已經從短語建議者棄用?只有提升業績?

1-如果它已被替換爲別的東西,並有推薦的方法來做到這一點,所以我可以解決我的問題?

(我問過同樣的問題在elastic forum,並將在更新的情況下這兩個問題我找到答案)

+0

我不明白爲什麼上下文建議器不合適。似乎上下文中提到的是一位裝飾建議者,不是嗎? – aclokay

+1

@aclokay如果我說得對,上下文建議器只能在完成字段(它將保存爲內存中的圖形)下工作,並且不是實現拼寫檢查的正確選擇,如下所述:https://www.elastic.co /guide/en/elasticsearch/reference/current/search-suggesters-completion.html:'[完成建議]不適用於拼寫糾正或您的意思功能,如術語或詞組建議者。「#: 因此,我需要限制用戶文檔中的術語或短語建議。 – sheshkovsky

回答

0

我有相同的基本需求,有剪枝查詢,應允許排除你不想要的文件:看看How do I add a weight (or prefilter) for a phrase suggester?

+0

鼓勵與外部資源的鏈接,但請在鏈接上添加上下文,以便您的同行用戶可以瞭解它是什麼以及它爲何存在。如果目標網站無法訪問或永久離線,請始終引用重要鏈接中最相關的部分。請參閱[如何回答](https://stackoverflow.com/help/how-to-answer) – SilverNak