如何按特定字段过滤弹性搜索词或短语建议者?
我正在使用弹性搜索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,并将在更新的情况下这两个问题我找到答案)
我有相同的基本需求,有剪枝查询,应允许排除你不想要的文件:看看How do I add a weight (or prefilter) for a phrase suggester?
鼓励与外部资源的链接,但请在链接上添加上下文,以便您的同行用户可以了解它是什么以及它为何存在。如果目标网站无法访问或永久离线,请始终引用重要链接中最相关的部分。请参阅[如何回答](https://stackoverflow.com/help/how-to-answer) – SilverNak
我不明白为什么上下文建议器不合适。似乎上下文中提到的是一位装饰建议者,不是吗? – aclokay
@aclokay如果我说得对,上下文建议器只能在完成字段(它将保存为内存中的图形)下工作,并且不是实现拼写检查的正确选择,如下所述:https://www.elastic.co /guide/en/elasticsearch/reference/current/search-suggesters-completion.html:'[完成建议]不适用于拼写纠正或您的意思功能,如术语或词组建议者。“#: 因此,我需要限制用户文档中的术语或短语建议。 – sheshkovsky