从LatLonType升级到LatLonPointSpatialField

时间:2017-10-30 22:56:17

标签: solr geospatial spatial boosting

我正在使用Solr 6.5.1

现已弃用LatLonType(https://lucene.apache.org/solr/guide/6_6/spatial-search.html) 我正在尝试使用LatLonPointSpatialField。我还需要它是多值的。

我的字段定义如下:

<fieldType name="location" class="solr.LatLonPointSpatialField" docValues="true"/>

之前我曾经在我的LatLonType字段上加强:

boost=recip(geodist(sfield,45.15,-93.12),3 ,10000,3000)(我正在使用eDisMax)。

更改空间数据类型后,我收到此错误:

A ValueSource isn't directly available from this field. Instead try a query using the distance as the score.我不明白。

该文档没有说明使用geodist函数和edismax在boost=参数中使用它。相反,它只是建议使用函数值进行排序: https://lucene.apache.org/solr/guide/6_6/spatial-search.html#SpatialSearch-geodist

然而,这对我不起作用,我不需要对距离进行排序,我希望将geodist()函数与得分相乘以更改得分。

1 个答案:

答案 0 :(得分:0)

对我有用的解决方案:

之前(LatLonType):

boost=recip(geodist(coordinates_ll,49.175,-123.003),1,10,1)

之后(LatLonPointSpatialField):

boost=recip(geodist(),1,10,1)&pt=49.175,-123.003&sfield=coordinates_ll