2012-12-27 77 views

回答

2

您可以使用Solr's Bounding-box过滤器来查找框之间的记录,但它与单点(纬度,经度)和距离的作品。

如果你有两点,那么你可以通过使用范围查询找到这个盒子之间的记录。查询可以是这样的:

.. & FQ = latField:[LAT1 TO LAT2]和lonField:[lon1 TO lon2]

+0

非常感谢。这是一个很好的解决方案,但我在单个字段中用逗号分隔。 – aishazafar

+0

@aishazafar然后你可以做fieldName:[lat1,long TO lat2,lng2] 只要确保lat1 <= lat2和lon1 <= lon2 –

0

这是Solr的查询: 只需更改为PT搜索坐标和距离d作为圆的半径。 FQ = {!geofilt元数=坐标} & PT = 10.737845823323038,106.65631819042972 & d = 2.8'

每个从solr的索引与该schema.xml中配置文件:

< 字段名=“坐标“

和文档对象应该包含这样的字段: $ fields ['coordinates'] = implode(',') ',$ post-> getCoordinates() - > getLatLng());