很早就有意向写一篇记录范围内检索的摸索过程,这里以数据量为主线展开三个方面,自己在项目以及demo过程中先后实践过。
范围内检索,一个文本的地址,想要实现空间范围的检索,必须具有一个属性,就是经纬度,这里默认的数据格式如下:
经纬度信息,特定的属性信息
应用场景是我们给定一个地址A,在上面的数据库中检索出地址A周围的信息,用于满足业务场景。
(1)数据量在十万以内
此时的数据量非常少,经纬度存储可以分为两个字段来搞,X和Y分别代表经度和纬度,直接存储在mysql中即可
地址A---地址A的经纬度信息---通过具体的范围信息划定一个矩形--获取矩形的对角线两个点(A1,B1)和(A2,B2)
通过简单的矩形内部计算就可以满足范围内检索,sql形式如下:
A1<X<A2
B1<Y<B2
(2)数据量在100W到300W左右
这时候数据存储还在mysql中,只不过不用上面的办法了,而是利用mysql对于空间数据的扩展来满足需求。
例如下面的sql,用来创建空间数据point的一张表,注意engine需要使用MyISAM(因为这个引擎才能加上空间索引),还有就是需要加索引的那个字段必须为非空。
create table search_point(
id bigint not null auto_increment,
biz_order_id bigint(32),
county_id int ,
address varchar(256),
gmt date ,
latlng point not null,
primary key(id)
)engine=MyISAM default charset=gbk;
添加空间索引,添加索引后才能使用空间函数进行索引。
alter table search_point add spatial index(latlng);
下面通过空间函数来实现检索,百万级别的数据,返回结果基本在毫秒级别
例如下面的ibatis函数
<select id="getInfoBylatlng" resultMap="searchResultMap">
select biz_order_id,county_id,address,AsText(latlng)
from lg_search_point
where
MBRContains(GeomFromText('POLYGON((
$swlat$ $swlng$,
$selat$ $selng$,
$nelat$ $nelng$,
$nwlat$ $nwlng$,
$swlat$ $swlng$
))'),latlng)
and gmt=#selectdate#
</select>
(3)数据量在1亿+左右
这个级别的数据量就不是mysql能够解决的了,分库分别暂时没有一个分库分别的主键,所以要通过nosql来搞定,在尝试过程中用到了hbase来作为数据存储。
大体思路是:通过对经纬度信息进行geohash编码,把二维的空间问题转化为一维的代数问题。
经纬度---geohash编码
然后geohash编码作为hbase的rowkey来设计,geohash编码值有个特定就是前缀相同的位数越多,越相近。
此时正好利用hbase中rowkey的prefixfilter来满足需求。
上述为空间数据检索的三个实践,数据量不同,可以选择不同的场景。
分享到:
相关推荐
- **检索执行阶段**:在这个阶段,检索调度机会在已确定的搜索范围内,依据知识对象与用户需求的特征选择合适的相似度测量模型和检索算法,然后对KMS知识子库进行搜索,找到与用户需求相匹配的知识,并将检索结果...
这些数据结构都是为了优化几何范围搜索,即查找在特定空间区域内的所有数据点。 论文首先对20个开源的C和C++库进行了综合分析,这些库支持范围查询,并且被用于HPC场景。评估的内容涉及以下几个方面: 1. **适用性...
这意味着无论是在大量数据中查找特定日期还是数值范围内的信息,系统都能够高效地完成任务,并按照用户的需求返回排序后的结果。 ##### 4. **支持多库群集与结果归并** - 该版本支持多个数据库组成的群集,并能在...
该库的核心目标是提供一个灵活、高性能的文本搜索解决方案,使得开发者可以专注于应用逻辑,而无需关注底层的搜索算法和技术细节。 二、工作原理 1. 分词(Tokenization):Lucene.NET首先通过分词器(Analyzer)...
本文主要探讨了针对空间数据范围搜索的加密技术,是一篇一万字的本科毕业论文,旨在研究如何在保障数据安全的同时,高效地进行空间数据的范围查询。论文由六部分组成,涵盖了研究背景、国内外研究现状、空间数据范围...
企业文档管理是现代企业提升竞争力的关键环节,尤其在互联网时代,知识和信息的积累、分享与创新成为企业...通过对接现有部门级文档库,实现全企业范围内的统一管理和利用,从而在竞争激烈的市场环境中保持企业优势。
位置空间索引是数据结构和算法领域的一个关键概念,它允许快速查询和操作地理位置相关的数据,例如查找某个区域内所有的兴趣点或者计算多边形覆盖范围内的点等。 在地图应用中,随着地理数据量的增加,如何有效地...
全球范围内,专利检索服务的主要生产商包括RELX Group、Clarivate、Questel、PatSnap、IFI Claims、Patentics、PatSeer等。根据2023年的调研数据,全球前五大厂商占据了大约45.0%的市场份额。这些厂商通过提供高质量...
- **距离**:查找与指定对象在一定距离范围内的对象。 - **西北、邻接、接触、交叠**:这些是更复杂的相邻关系,用于描述对象之间的精确位置关系。 空间查询的处理步骤通常包括: - **开始查询**:接收用户的查询...
"蓝色空间站内搜索引擎"是一个专门设计用于在特定站点内部进行高效检索的工具,它集成了百度搜索引擎的技术,使得用户可以在自己的网站上快速找到所需的信息,同时也具备对互联网的搜索能力。这款搜索引擎不仅提升了...
* 安全防范:保障水电站空间范围内的建筑、设备的安全起到防盗、防火的作用。 5. 无人值守水电站远程监控应用方案的技术优势 无人值守水电站远程监控应用方案具有以下几个技术优势: * 高清晰的实时监控画面:...
- **解决方案**:通过对实时数据进行多维度分析,开发人员可以根据问题表象快速查找对应的性能数据指标,从而缩小问题范围。 3. **趋势分析**: - **挑战**:传统数据库难以应对大量周期性数据的分析需求。 - **...
本项目“AO+C# 空间数据查询”聚焦于利用ArcGIS 10这个强大的GIS平台,通过C#编程语言实现对空间数据的高效检索。下面我们将详细探讨其中涉及的关键知识点。 1. **ArcGIS 10**:ArcGIS是由Esri公司开发的一套全面的...
数字化建设方案则关注档案的电子化和网络化,使档案信息能快速检索、远程访问,增强档案的可获取性和共享性。信息化建设方案强调信息系统的整合和优化,打破信息孤岛,提升系统间的协同能力。智能化建设方案侧重于...
CDN的主要目的是通过在全球范围内部署服务器节点来缩短用户与服务器之间的物理距离,从而提高内容加载速度,改善用户体验。 - **CDN系统发展进程** 从最初的静态文件加速到现在的动态内容加速、视频流媒体加速等...
它不仅能够处理数据库内的文本数据,还能对存储在文件系统中的文档进行检索,极大地扩展了数据检索的能力范围。无论是对于企业级应用还是学术研究,Oracle Text 都是一个值得深入探索的强大工具。
标题中的“电信设备-一种搜索预定地理范围内信息的方法和装置”指的是利用电信技术,通过特定的硬件设备和软件算法,实现对特定地理范围内的信息进行快速检索的技术方案。 这种技术的核心在于集成GPS定位系统、无线...
此外,考虑到成本控制(TOC),整个方案需要在预算范围内实施。为了构建IP存储网络,选择了3台邦诺的SMI-100-R316存储设备和2台24口千兆交换机,形成冗余链路,即便单个交换机故障,系统也能继续运行。每台SMI-100-R...
据统计,全球范围内因数据丢失而导致无法恢复的企业中,仅有6%的企业能幸存下来,而43%的企业会立即关闭,剩余51%的企业则在两年内消失(数据来源:Gartner 2008年报告)。这充分说明了数据保护对于企业生存的重要性...