我正在尝试确定如何对查询结果进行排序或评分,以便首先返回在特定字段上具有显式匹配的文档,然后是升序距离的其他匹配文档。
按照 Solr 的空间教程中使用的示例,假设我有几个商店,看起来像这样(伪):
<Store>
<Id>1</Id>
<Coords>10,-15</Coords>
<PostalCode>12345</PostalCode>
<ServiceArea>
<PostalCode>12345</PostalCode>
<PostalCode>23456</PostalCode>
</ServiceArea>
</Store>
<Store>
<Id>2</Id>
<Coords>11,-16</Coords>
<PostalCode>23456</PostalCode>
<ServiceArea>
<PostalCode>12345</PostalCode>
<PostalCode>23456</PostalCode>
</ServiceArea>
</Store>
所以,两家店。每个人都有自己的邮政编码,并且每个人都为彼此的邮政编码提供服务。现在我想查询以下内容:
Find stores which service PostalCode 12345
Ordered by stores in PostalCode 12345 first
Then ordered by ascending distance from PostalCode 12345
我试图保持这个使用StandardQueryParser
,如果涉及到提升,它需要在查询中定义,而不是在索引中定义。