排序和提升

时间:2017-05-31 14:35:10

标签: solr

是否可以在Solr中对提升查询进行排序? 我有以下情况:

<doc id="A">>
   <str name="PUB_DATE">2017-04-19T11:08:30Z</str>
   <str name="TIPOLOGY">TWO</str>
</doc>
<doc id="B">
   <str name="PUB_DATE">2017-04-19T11:08:30Z</str>
   <str name="TIPOLOGY">ONE</str>
</doc>
<doc id="C">
   <str name="PUB_DATE">2017-04-19T11:08:30Z</str>
   <str name="TIPOLOGY">THREE</str>
</doc>
<doc id="D">
   <str name="PUB_DATE">2017-04-20T11:08:30Z</str>
   <str name="TIPOLOGY">ONE</str>
</doc>

这个想法是:

  • 首先按pub_date desc排序。

  • 如果是同一个pub_date,则按照tipology字段进行提升。一,二,三。

所以通过上面的例子,Solr查询将返回D - &gt; B - &gt; A - &gt; ç

我尝试以下查询但不起作用:

/select?defType=edismax&q=XXXXXXXX&sort=PUB_DATE+desc&bq=TIPOLOGY:ONE^100+TIPOLOGY:B^10++TIPOLOGY:C^1

1 个答案:

答案 0 :(得分:2)

你的排序&#39; param要求结果仅按PUB_DATE排序,而bq param正在影响每个doc的得分。

你需要做的是先让他们按PUB_DATE排序,然后得分,如下:

/select?defType=edismax&q=XXXXXXXX&sort=PUB_DATE desc, score desc&bq=TIPOLOGY:ONE^100+TIPOLOGY:B^10++TIPOLOGY:C^1

如果您的bq提升足以获得文档&#39;分数按顺序工作(因为分数也受q = XXXXXX部分的影响)