是否有任何可以传递给查询的排序顺序,它将告诉solr以与查询相同的顺序对结果进行排序

时间:2017-01-04 11:05:29

标签: sorting solr

我正在制作一个Solr请求并在fq参数中传递docs的id。 Solr按预期返回按文档分数排序的文档。我希望Solr以与发送ID相同的顺序返回文档。

因此,有一个值可以排序参数,而不是我可以给出的结果。

2 个答案:

答案 0 :(得分:0)

而不是传递给fq。使用电梯组件。

编辑solr conf文件夹中的elevate.xml文件和

<query text="ipod">
   <doc id="S03" /> 
   <doc id="S01" />  
   <doc id="S02" /> 
 </query>

无论solr得分值如何,它都会按照你在elevate.xml文件中给出的顺序返回文档。

OR

在edismax中使用bq(Boosting)参数。 例如:

defType=edismax&q="ipod"&bq=id:S03^4+id:S02^3+id:S01^

答案 1 :(得分:0)

默认排序顺序 - 如果未提供排序且所有分数相似(或仅使用fq - 应该是内部Lucene ID - 这意味着您应该按顺序获取文档他们已经加入了。

您可以使用sort=_docid_ asc明确要求。

但是,如果这非常重要 - 因为如果更新后文档将被重新排序,并且您可能希望保留原始排序顺序,请添加一个字段以跟踪添加文档的时间并按该字段排序。