我是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
将如何运作的问题。
非常感谢任何帮助。
答案 0 :(得分:1)
sort
子句的参数通过参数传递到达那里。因此,基本上在Solr查询中,您可以通过$
符号引用它。
Solr documentation
中更简单的例子q={!type=dismax qf=myfield v=$qq}&qq=solr rocks
您的查询和sort子句中也会发生类似的事情。查询Sorting的工作方式如下:
Solr可以根据文档分数或分类对查询响应进行排序 具有单个值的任何字段的值
,而不是sort
子句,您可以指定要排序的字段,或查询(可以是普通查询或function query) - 这会生成单个“伪”字段(得分)