Solr geofilt()查询始终将分数返回为1

时间:2019-02-08 08:13:58

标签: spring-boot solr spring-data solrj spring-data-solr

我正在使用 Solr 7.4.0 spring-boot-starter-data-solr 2.1.2 版本

以前,我使用的是Solr 5.3.1,并使用下面的代码来获取geofilt()结果

Point point = new Point(42.9254,-78.8696)

Criteria criteria = new Criteria('latLong')
criteria.within(point, new Distance(100, Metrics.MILES))
SimpleQuery query = new SimpleQuery(criteria)
            .addProjectionOnFields(new SimpleField('score'))
            .addSort(new Sort(Sort.Direction.ASC, 'score'))
            .setRows(100)

SolrQuery由SolrTemplate内部形成

q={!geofilt+pt=42.9254,-78.8696+sfield=latLong+d=160.9344}&rows=100&fl=score&sort=score+asc

升级到Solr 7.4.0后,上面的查询对我所有的结果返回的分数均为1。

Solr 7.4文档建议在geofilt()中添加局部参数得分以获得正确的结果。

参考https://lucene.apache.org/solr/guide/7_4/spatial-search.html#searching-with-query-parsers

当我在geofilt()中手动添加score = km / miles时,查询会在score中给出正确的结果

q={!geofilt+pt=42.9254,-78.8696+sfield=latLong+d=160.9344%20score=kilometers}&rows=100&fl=score&sort=score+asc

但是如何使用spring-boot-data-solr在geodist查询中添加 score =公里 score =英里

0 个答案:

没有答案