2017-09-03 64 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