最近,研究solr的空间查询。
查询结果,老是把所有结果都反馈回来,未能查询到该坐标半径10km内的数据
查询链接:http://localhost:8080/solr/position_test/select?d=10&indent=on&pt=120.952938,24.059722&q=*:*&sfield=position&wt=json
查询条件如图:
数据是从mysql 导过来的。position是经度+空格+纬度 如果中间不是空格是逗号,那么将无法显示出该数据。感觉 经度+空格+纬度 是符合 类型location_rpt的。
data-config.xml
position字段,schema里面就配置了 location_rpt类型
配置如下:
<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType" geo="true" maxDistErr="0.00009" distErrPct="0.025" distanceUnits="degrees"/>
有搭建solr平台的教程demo吗?麻烦发一份给我, 谢谢
http://www.cnblogs.com/zhangweizhong/p/5036428.html
我也是,网上查的,很多安装教程的。
也就安装tomcat 和jdk
然后,把solr文件部署到tomcat上,修改配置文件
找到问题了,fieldtype location_rpt只能适用于多边形范围内的坐标。
数据库position 字段的数据格式是要:[lat,lon]
我之前lon+空格+lat是不行的,但是,solr查询不提示错误。即使我用了字段类型为:location和location_rpt
同时,坐标查询一定要带{!geofilt} 比如:q={!geofilt pt=25.443875,119.025182 sfield=position d=5}
这里sfield是你的坐标字段