Elasticsearch 有两个相似的特性来获取“相似”的文档:
有“更像这个 API”。它给了我类似于给定文件的文件。不过,我不能在更复杂的表达式中使用它。
还有"more_like_this"
用于搜索 API 的查询我可以在 bool 或 boosting 表达式中使用它,但我不能给它一个文档的 id。我必须提供"like_text"
参数。
我有带有标签和内容的文档。有些文档会有很好的标签,有些则没有。我想要一个“类似文档”功能,它每次都可以使用,但会将具有匹配标签的文档排名高于具有匹配文本的文档。我的想法是:
{
"boosting" : {
"positive" : {
"more_like_this" : {
"fields" : ["tag"],
"id" : "23452",
"min_term_freq" : 1
}
},
"negative" : {
"more_like_this" : {
"fields" : ["tag"],
"id" : "23452",
}
},
"negative_boost" : 0.2
}
}
显然这不起作用,因为没有"id"
in "more_like_this"
。有哪些替代方案?