2017-05-31 59 views
0

是否可以对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递减的。

  • 在pub_date相同的情况下,通过tipology字段进行提升。一二三。

因此,通过上面的例子中,Solr的查询将返回d - >乙 - > - >ç

我尝试以下查询,但不工作:

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

回答

2

您的“排序”参数要求结果仅由PUB_DATE排序,而bq参数影响每个文档的分数。

你需要做的是让他们被PUB_DATE先进行排序,然后打分,就像这样:

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

如果你的BQ提升都足以让文档的得分,以它的工作(因为得分也受到q = XXXXXX部分的影响)