我正在使用 Elasticsearch 5.3 并提供“did-you-mean”功能,我想将术语或短语建议器的上下文限制为仅用户的文档而不是索引中的所有文档。这是我当前使用术语建议器的 _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?
关于elasticsearch - 如何按特定字段过滤 Elasticsearch 词或短语建议器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46021620/