Search 如何按距离对Solr查询进行排序?

Search 如何按距离对Solr查询进行排序?,search,indexing,solr,lucene,Search,Indexing,Solr,Lucene,我查询的结果如下: ?q=*&wt=json&rows=1000&fq={!geofilt%20pt=36.722484,-4.371908%20sfield=location%20d=50} 这是使用geofilt函数查找给定点50公里范围内的所有结果。但结果以一种奇怪的顺序回归。我想通过接近给定点来对它们进行排序,升序。如何将其添加到上述查询中?如果获得的值不是字段值,而是计算结果,例如动态生成的值,如点之间的距离,则可以对函数的输出进行排序。请查看此链接: 我敢打

我查询的结果如下:

?q=*&wt=json&rows=1000&fq={!geofilt%20pt=36.722484,-4.371908%20sfield=location%20d=50}

这是使用geofilt函数查找给定点50公里范围内的所有结果。但结果以一种奇怪的顺序回归。我想通过接近给定点来对它们进行排序,升序。如何将其添加到上述查询中?

如果获得的值不是字段值,而是计算结果,例如动态生成的值,如点之间的距离,则可以对函数的输出进行排序。请查看此链接:


我敢打赌,您需要应用额外的排序参数,如下所述:

因此,在您的情况下,它看起来像:

?q=*&wt=json&rows=1000&fq={!geofilt%20pt=36.722484,-4.371908%20sfield=location%20d=50}&sort=geodist()+asc

否,返回此错误:错误:{msg:sort param无法作为查询进行分析,并且不是索引中存在的字段:geodist,代码:400}您使用的是哪个Solr版本?我们使用的是5.4。我想可能是使用全局参数而不是局部参数,例如:&fq={!geofilt}&pt=36.722484,-4.371908&sfield=location&d=50&sort=geodist+asc。你能检查一下吗?好吧,这不会返回错误,但是asc/dsc在该查询中返回完全相同的顺序。所以它似乎不是在分类。