【发布时间】:2019-11-12 12:03:20
【问题描述】:
有点简单的用例,但无法提出好的解决方案。
基本上我有两个索引字段:内容和关键字(关键字标记器),其中内容是一个长文本字段,关键字包含该内容中的重要术语。当我查询一些长文本时,我必须根据匹配文档中存在的关键字来提升这些结果。
我尝试在内容和关键字字段上查询完整的文本,但速度太慢,或者对于超过 40 个字的文本会引发 too_many_clauses 错误。
{"query": {
"match": {
"keywords": {
"query": "some long text",
"analyzer": "custom_analyzer"
}
}
}}
有没有更好的方法?渗滤器可以在这里工作吗?
【问题讨论】:
-
match应该根据您的搜索词带来权重更大的文档。你是说match没有按预期的方式工作吗? -
percolator 在这里感觉有点矫枉过正,它被用于推荐或提升搜索,其中一些您想要提升或推荐的文档,无论其 tf/idf 或搜索分数如何。例如,苹果希望将 iPhone11 的帖子宣传为最新的 iphone,而不考虑其搜索得分。
-
感谢您接受我的回答,如果您也可以投票,那就太好了,TIA。
标签: elasticsearch lucene