了解在 solr 中对查询进行排序

Understanding Sort on query in solr

我是 solr 的新手,正在尝试理解这样的 solr 排序标准 -

bQ01=2859969
bQ02={!term f=prdId v=$bQ01}
bQ03={!lucene} {!v=$bQ02}^=6

buryClearanceQuery={!parent which=$pq score=min v=$matchAllQueryRef2}
matchAllQueryRef2= ({!query v=$cq})  ({!simpleFilter v=$priceTypeClearance})
priceTypeClearance={!term f=priceType_refine v=$matchAllQueryRef3} 
matchAllQueryRef3=Clearance
cq= {!simpleFilter v=docType:pdf}   {!docValues v='shelf_873:1'}
sort=query($bQ03,0) desc, query($buryClearanceQuery) asc

我在理解上面的排序标准以及 query(some_expression, 0) desc 将如何工作时遇到问题。

非常感谢任何帮助。

sort 子句的参数通过参数传递到达那里。因此,基本上在 Solr 查询中,您可以通过 $ 符号引用它。

来自 Solr 的更简单示例 documentation

q={!type=dismax qf=myfield v=$qq}&qq=solr rocks

类似的事情发生在您的查询中,尤其是在 sort 子句中。 Sorting 按查询工作如下:

Solr can sort query responses according to document scores or the value of any field with a single value

sort 子句相比,您可以指定要排序的字段或查询(它可以是普通查询或 function query)- 产生单个 "pseudo"场(得分)