【发布时间】:2017-07-26 05:06:03
【问题描述】:
我正在尝试根据文档中浮点数字段的值来提高文档的分数。
例如,用户可能搜索“名为 ron 的 Oliphaunts,高度在 6 到 10 米之间”,我想查询 height 字段以类似于DecayFunction 的方式。
在下面的简化查询中,我希望检索按名称和身高评分的 oliphaunts,其中高度接近 8 米更好 -
q=name:"ron" _val_:"div(1,abs(sub(height,8)))"
我已经使用 math operands 和 regular functions 的组合起草了我的指数衰减评分函数 -
exp(sub(0,div(pow(max(0,sub(abs(sub(value,origin)),offset)),2),mul(2,sub(0,div(pow(scale,2),mul(2,ln(decay))))))))
现在我想使用 _val_ magic field 将此函数合并到查询分数中。
如何在 Solrj 中完成此操作?
还有哪些其他方式(而不是_val_)可以做到这一点?
{p.s. - 我在 Solr 5.3.1 中使用标准查询解析器}
【问题讨论】:
-
您能否添加实际查询,以便我们确切知道您的方式是什么。另外,预期的结果是什么?能举个简单的例子吗?
-
我都做了。让我知道这是否有帮助