6

我正在使用新的 Solr 4 地理空间搜索。就像在http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4的一个例子中我试图得到这样的结果:

http://localhost:8983/solr/allopenhours/select?  
&q=foobar  
&fq=geo:%22Intersects(Circle(54.729696,-98.525391%20d=0.08992))%22  
&q={!%20score=distance}  
&fl=*,score 

但它不起作用。如何在结果集中获取距离和分数字段?

4

2 回答 2

8

根据参考空间搜索 - 返回距离,您可以编辑字段参数以执行以下操作之一:

  • &fl=*,score,geodist()
  • &fl=*,score,_dist_:geodist()- 这个将返回别名中的距离_dist_
于 2013-01-18T18:08:30.017 回答
4

佩奇给出的答案是正确的。但是,根据给定的查询显示错误。

Error parsing fieldname: geodist - not enough parameters:[]

geodist 需要sfield(保存文档中位置的字段)和 a pt(圆的中心点)。如果它找不到任何这些,它将抛出显示的错误。

将这两个添加到 URL

&pt=52.373,4.899&sfield=store&fl=_dist_:geodist()

或者将两个(或实际上是 3:ptlatlon添加到geodist()函数调用中:

&fl:_dist_:geodist(store,52.373,4.899)

请注意,在第一种情况下,如果您geofilt的查询中有其他地理功能(如 ),则ptandsfield也用于此目的(除非本地覆盖)

于 2014-06-30T10:28:34.630 回答