在返回数据之前更改订单

时间:2011-02-11 02:50:46

标签: function plugins solr

有没有办法改变SOLR中的结果顺序。 例如,当我在SOLR中查询时,我将得到1000条得分最高的记录,然后在这1000条记录中,我将使用我自己的函数再次更改订单,并获得这些记录的10条记录。

我可以通过php或java获得1000条记录和处理,但是我必须从SOLR服务器向网络服务器传输1000条记录,我不想要这样,我只想在更改订单后使用分页获得10条记录。

SOLR是否支持这种自定义功能?

2 个答案:

答案 0 :(得分:0)

如果最初索引记录时可以应用函数,则可以在那里执行此操作并将结果作为值添加到记录中。然后按预先计算的值对结果集进行排序。如果没有,我没有直接使用它,但this thread似乎有你正在寻找的答案

答案 1 :(得分:0)

是的,您可以创建一个列,其中包含您要在分数中考虑的信息。例如,对于“热门程度”列,您的查询将是:

your query && _val_:"popularity"^0.7

0.7是最终得分的提升因素。 您还可以过滤结果集以获得较少的结果:

your query && fq=popularity:[10 TO *]