2012-12-27 80 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());