【Solr空间搜索SpatialSearch】
喂,这几个单词什么意思,你晓得伐
名词 | 含义 |
---|---|
longitude | 经度 |
latitude | 纬度 |
LatLon | 纬度经度的缩写 |
Grid | 网格 |
空间搜索
空间搜索,又名Spatial Search(Spatial Query),基于空间搜索技术,可以做到:
1)对点Point(经纬度)和其他的几何图形建索引
2)根据距离排序
3)根据矩形,圆形或者其他的几何形状过滤搜索结果
玩转经纬度
Solr自3.1以来就开始支持地理空间数据搜索,例如fieldType使用location_rpt可存储地理位置的经纬度信息。
注意:建议不要使用Solr的保留字或者存在字段名和字段类型冲突的情况,否则可能在录入数据时出现异常信息。
- 添加经纬度字段latitude_longitude,类型为location_rpt
- Reload索引,确保索引字段已生效
- 存储经纬度索引数据
- 确保索引数据已录入
业务场景
学习利用空间查询的基本语法和集合操作,可以帮助实现相关的几何搜索需求。
例如,圆形、方形及多边形查询语法示例:
q={&q=:&fq={!geofilt sfield=store}&pt=45.15,-93.85&d=5}
q={&q=:&fq={!bbox sfield=store}&pt=45.15,-93.85&d=5}
q={&q=:&fq={!field f=geo}Intersects(POLYGON((-10 30, -40 40, -10 -20, 40 20, 0 0, -10 30)))}
Solr支持的几种常见的几何操作:
WITHIN:在内部
CONTAINS:包含关系
DISJOINT:不相交
Intersects:相交(存在交集)
网格查询
基于网格的定位系统使用了前缀树(prefix tree)概念,以一系列或粗略或精确的前缀来代表地点。
SpatialRecursivePrefixTreeFieldType对前缀树进行抽象表示,允许实现用来索引或搜索空间数据的多层级网格系统的不同功能。
Solr空间索引主要有两类:GeohashPrefixTree(Geohash)与QuadPrefixTree(四叉树,对应笛卡尔分层策略)。
Geohash是专门为建立地球空间模型而设计的,可以在schema中定义SpatialRecursivePrefixTreeFieldType时,设定geo=true开启这个功能。
Reference
https://wiki.apache.org/solr/SpatialSearch
https://lucene.apache.org/solr/guide/6_6/spatial-search.html#SpatialSearch-RPT
https://www.slideshare.net/lucidworks/lucenesolr-spatial-in-2015-presented-by-david-smiley
https://www.slideshare.net/LucidImagination/spatial-search-with-geohashes
https://www.thesisscientist.com/docs/E-Booklets/6c243540-8456-4c6e-b1ab-491af8c276f3
美团的技术实力杠杠的,有时间也把空间搜索流程分析一遍。
https://tech.meituan.com/2014/09/02/solr-spatial-search.html
https://dataknocker.github.io/2014/04/11/solr空间索引原理及源码分析/
https://www.ibm.com/developerworks/cn/java/j-spatial/
https://www.cnblogs.com/LBSer/p/3310455.html
https://github.com/ashwin711/proximityhash
FI Solr的二次开发指南太简配了,完全无法指导特定的业务场景开发,当有客户有需求过来咨询,一来一回,浪费时间人力。
https://blog.csdn.net/u010367582/article/details/54289945
https://blog.csdn.net/alan_liuyue/article/details/77800281
https://blog.csdn.net/u014508939/article/details/85165807
https://blog.csdn.net/ljsmart/article/details/84159800
https://django-haystack.readthedocs.io/en/master/spatial.html
http://www.cnblogs.com/hanhuibing/articles/5680616.html
https://derickrethans.nl/spatial-indexes-solr.html
【Solr空间搜索SpatialSearch】相关推荐
- 基于Solr空间搜索
概括: 最近一个项目需要基于LBS查询附近的商铺信息,看了一下网上都是基于Solr和ELS方式来实现, 本来想使用ELS来实现的,但是由于项目以前用的是Solr, 所以就去调研了一下基于Solr来实现 ...
- Solr空间搜索原理分析与实践
前言 在美团CRM系统中,搜索商家的效率与公司的销售额息息相关,为了让BD们更便捷又直观地去搜索商家,美团CRM技术团队基于Solr提供了空间搜索功能,其中移动端周边商家搜索和PC端的地图模式搜索功能 ...
- 基于Solr的空间搜索学习笔记
基于Solr的空间搜索学习笔记 在Solr中基于空间地址查询主要围绕2个概念实现: (1) Cartesian Tiers 笛卡尔层 Cartesian Tiers是通过将一个平面地图的根据设定的层次 ...
- solr中文搜索倒排索引和数据存储结构
solr中文搜索倒排索引和数据存储结构 我们传统的方式(正排索引)是从关键点出发,然后再通过关键点找到关键点代表的信息中能够满足搜索条件的特定信息,既通过KEY寻找VALUE.而Lucene的搜索则是 ...
- solr简单搜索案例
solr简单搜索案例 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字搜索商品信息,根据商品分类.价格过滤搜索结果,也可以根据价格进行排序,实现分页. 架构分为: 1. solr服务器 2. ...
- [ElasticSearch] 空间搜索 (一)
根据索引文档的地理坐标来进行搜索,Elasticsearch 也能够处理这样的搜索.--空间搜索 一.为空间搜索准备映射 PUT my_space_test {"mappings" ...
- 内网solr全文搜索服务器,快解析一步映射让外网访问
Solr,指apache solr,其全称为Search On Lucene Replication.Solr,是一个高性能,采用java开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提 ...
- 状态空间搜索或者空间搜索或者迷宫问题总结(递归法、回溯法)Python(递归一般用栈,回溯是循环)
状态空间搜索问题或者称迷宫问题的基本特征是: 1.存在一集合可能状态(位置.情况等.这一集合可能很大).例:迷宫问题中的可能位置. 2.有一个初始状态S0,一个或者多个结束状态,或者有判断成功结束的方 ...
- 搜索引擎语法+网络空间搜索and在线web工具
你用过哪些搜索引擎呢? 百度 bing Google ? 一 :利用百度的高级搜索功能帮助你找到关键信息 二 :Google Hack google hack是指使用Google等搜索引擎对某些特定的 ...
最新文章
- R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(手动配置箱图箱体颜色)实战
- Coursera课程Python for everyone:Quiz: Single-Table SQL
- 全球及中国增强现实产业战略布局及运营前景决策分析报告2021-2027年
- [云炬python3玩转机器学习笔记] 1-3课程所使用的主要技术栈
- SSD: how to optimize your Solid State Drive for Linux Mint 17.3, Ubuntu 16.04 and Debian
- 使用brew cask安装minikube的各种错误和解决方法
- matlab基础试题,MATLAB基础试题题目及答案,课程2020最新期末考试题库,章节测验答案...
- NoHttp开源Android网络框架1.0.0之架构分析
- Python基础(注释/算数运算符/变量类型/拼接字符串)
- 【JAVASCRIPT】如何不使用jquery函数和ajax框架实现ajax效果
- matlab figure函数_如何在Matlab中使用GUI做一个简易音乐播放器? ---- (六)控件间的数据传递...
- 2.软件架构设计:大型网站技术架构与业务架构融合之道 --- 架构的道与术
- Python语法命令学习-Day3(作业练习)
- 多学习,C++值得看的书籍
- ubuntu上打开md文件_Ubuntu 使用教程.md
- html swf转mp4,swf怎么转换成mp4 swf视频转换成mp4格式没有声音|转换成MP4格式没有画面...
- bing搜索引擎子域名收集(Python脚本)
- Unity3d 微信小程序游戏
- 达叔走了,别只发声感叹就完了
- Linux 常见问题
热门文章
- 两篇毕业论文致谢同一个女朋友?大型翻车现场!
- python3 全局变量_Python3基础 当函数中的局部变量与全局变量同名了,各管各的...
- 在Layui框架里设计一个评论列表的前端界面
- Java课程设计-基于Java Swing的学生信息管理系统-版本二
- 数学建模论文写作学习——数模论文概述
- 2019中国脑科学与神经调控技术发展高峰论坛
- iOS音视频播放-AVPlayer简单使用
- 解析微分电路和积分电路的区别
- ue4 改变枢轴位置_UE4实时渲染深入探究----学习总结【上篇】
- Publish/SubScribe(发布/订阅)模式