首页 新闻 会员 周边 捐助

solr 空间查询,返回所有结果

0
悬赏园豆:100 [已关闭问题] 关闭于 2017-06-07 15:22

最近,研究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"/>

Penll的主页 Penll | 初学一级 | 园豆:171
提问于:2017-06-06 16:40
< >
分享
所有回答(2)
0

有搭建solr平台的教程demo吗?麻烦发一份给我, 谢谢

~扎克伯格 | 园豆:1923 (小虾三级) | 2017-06-06 17:40

http://www.cnblogs.com/zhangweizhong/p/5036428.html
我也是,网上查的,很多安装教程的。

也就安装tomcat 和jdk

然后,把solr文件部署到tomcat上,修改配置文件

支持(0) 反对(0) Penll | 园豆:171 (初学一级) | 2017-06-06 17:49
1

找到问题了,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是你的坐标字段

 

Penll | 园豆:171 (初学一级) | 2017-06-07 15:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册