1,圆查询
{
q:*:*,
fq:{!geofilt},
spatial:true,
pt:lng lat,//圆心
sfield:L,//建立索引的字段
d:3,//半径设置
}
2,矩形查询
{
q:*:*,
fq:L:[lat,lng TO lat,lng] //两个点确定矩形
}
3,多边形查询
{
q:*:*,
fq:L:Intersects(POLYGON((lng1 lat1,lng2 lat2,.........,lng1 lat1)))
}
4,线周边查询
线周边查询本质上是多边形查询,使用turf.js根据线构建多边形。
索引的建立:
sql:select to_char(SMX)||' '||to_char(SMY) L from yourTable
<field column="L" name="L" />
solr配置(索引建立):
<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory"
geo="true" distErrPct="0.025" maxDistErr="0.000009" distanceUnits="kilometers" />
<field name="L" type="location_rpt" indexed="true" stored="true"/>
5,ajax跨域请求solr服务(jsonp只能解决get跨域请求)
$.ajax({
url:solrUrl, //http://ip:8080/solr/myCore/select
dataType:'jsonp',
jsonp:'json.wrf',
data:queryData, //上文中的Solr查询参数
success:function(data){
callbackFunction(data);
},
error:function(error){
}
});
参考博客:点击打开链接