1

我想向 SOLR/Lucene 提交查询,以及文档 ID 列表。从查询中,我想要通常的 top-N 得分结果,但我也想获得命名文档的分数……不管它们有多低。

谁能想到一种简单/受支持的方法在单个索引扫描中执行此操作,其中“添加”(非排名/固定包含)文档的分数与顶级文档的分数相当/相同 - N个结果?(用专门的类修补 SOLR 是可以的;我想如果没有现有的支持,我可能必须这样做。)

或者如果做不到这一点,是否可以使用后续查询进行模拟,理想情况下,命名文档分数可以缩放到与参考查询的前 N ​​大致相当?

或者——也许对我的预期用途同样好或更好——我是否可以针对包括 M(M=2 或更多)不同查询的 SOLR/Lucene 索引发出单个请求,并返回顶部的结果-N 对于任何 M 个查询,并且对于每个结果都包括其针对所有 M 个不同查询的分数?

(即使在我上面的公式中,我想要与新查询一起评分的文档列表通常也是先前查询的结果。)

解决方案,甚至只是可能的方法的片段表示赞赏!

4

2 回答 2

0
于 2012-09-11T06:14:56.727 回答
0

我不确定我是否正确理解您想要实现的目标,但不会简单

 q: (somequery) OR id: (1 OR 2 OR 4)

足够?如果您希望两个部分都以相同的比例提升(我不确定这是否不是 Solr 的默认行为),您可能需要使用 dismax 或 edismax 并且您的查询将更改为:

 q: (somequery)^10 OR id: (1 OR 2 OR 4)^10

然后,您将拥有由 ID 定义的元素和查询结果以相同的方式评分。

于 2012-09-07T13:43:19.120 回答