番外solr空间索引和查询
Posted 金沙数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了番外solr空间索引和查询相关的知识,希望对你有一定的参考价值。
(1)solr版本:solr-7.5.0
(2)部署方式:单机
(3)准备数据:
数据为json格式数据,结构如下:
[ {
"id" : 1,
"name" : "创业大厦",
"station_position" : "116.3231 39.9941"
}]
(4)创建collection,名称为: geo-demo
bin/solr create -c geo-demo
(5)配置schema
使用(4)中的命令创建好collection后,会生成默认的配置文件,配置文件路径:
${SOLR_HOME}/server/solr/geo-demo/conf
在managed-schema中增加如下配置:
ps:在默认的managed-schema配置中已经包含了name为location_rpt的fieldType
(6)重启solr
bin/solr restart
(7)创建索引
使用solr提供的bin目录下的post脚本创建索引。将准备好的数据building.json 放到
${SOLR_HOME}/example/exampledocs
目录下(这个放在哪里都可以啦)
创建索引如下图:
图一
(8)查询
创建好索引后,使用solr提供的AdminUI可以进行查询了。
图二
图二中红色方框中有一个spatial的选项,勾选此选项,设置对应参数可以进行空间查询。
20条数据选择点如下图所示:
图三
图三中红色方框为待查询的点,查询条件如下入所示:
图四
图中:
①为上图方框中的坐标点,这里需要注意的一点是,solr支持(纬度 经度)或者(x,y)的坐标。此处建索引时使用的(纬度 经度),查询时是使用的是(x,y)
②为进行空间查询的field
③为距离,单位是KM
④为使用filter,solr支持geofilt和bbox两种
上图含义:查找
(39.89815618119472,116.39410078525544)200m以内的建筑物名称
以上是关于番外solr空间索引和查询的主要内容,如果未能解决你的问题,请参考以下文章