【发布时间】:2015-11-05 04:58:55
【问题描述】:
我正在尝试为 Elastic Search (Elastic.co) 实施相关性反馈。
我知道boosting queries,它允许指定正负项,其想法是打折负项,而不是像布尔 must_not 那样排除它们。
但是,我正在尝试实现分层提升,无论是正面还是负面。
也就是说,我想获取一个分箱的正负术语列表并生成一个查询,以便有不同的正负提升层,每个层都包含自己的查询词。
类似(伪查询):
query{
{
terms: [very relevant terms]
pos_boost: 3
}
{
terms: [relevant terms]
pos_boost: 2
}
{
terms: [irrelevant terms]
neg_boost: 0.6
}
{
terms: [very irrelevant terms]
neg_boost: 0.3
}
}
我的问题是这是否可以通过嵌套的 boosting 查询来实现,或者我是否最好使用多个 should 子句。
我担心的是,我不确定 bool 查询的 should 子句中 0.2 的提升是否仍然会给文档带来正的分数增加,因为我想打折文档,而不是提供任何分数的增加。
通过提升查询,我担心我无法控制 积极 词的加权程度。
任何帮助或其他实现的建议,将不胜感激。 (我真正想做的是为相关文档创建一个语言模型并使用它来排名,但我不知道如何在弹性中轻松实现。)
【问题讨论】:
标签: search elasticsearch relevance boosting