1
warlock 2017 年 11 月 27 日
GeoHash
|
2
dbfox OP 发现 redis 有这样的功能
命令:GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] 命令描述: 以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。 范围可以使用以下其中一个单位: m 表示单位为米。 km 表示单位为千米。 mi 表示单位为英里。 ft 表示单位为英尺。 |
3
blacklee 2017 年 11 月 27 日
你有多少用户?
|
5
Immortal 2017 年 11 月 27 日
以前看过一个早期的文章 年代有点久远 LZ 可以重新测试和评估
https://ruby-china.org/topics/22059 |
6
Immortal 2017 年 11 月 27 日
你说的 redis geo 功能 是去年还是什么时候更新才加上的 所以那时候没测试数据 具体多 google
|
7
blacklee 2017 年 11 月 27 日 @dbfox 用 Postgres 数据库,简单弄个索引就完事了。
我自己的笔记本,MacBook Pro Late 2013,2 GHz Intel Core i7,8 GB 1600 MHz DDR3 在 Rails console 里执行了两条语句,你可以看到所需时间 [3] pry(main)> PoiBasic.count (20053.1ms) SELECT COUNT(*) FROM "poi_basics" => 56785460 [4] pry(main)> PoiBasic.order("latlng <-> point(30.333, 120.222)").limit(50) PoiBasic Load (23.5ms) SELECT "poi_basics".* FROM "poi_basics" ORDER BY latlng <-> point(30.333, 120.222) LIMIT 50 |
8
owenliang 2017 年 11 月 27 日
mongo 是可以的。
|
9
xmadi 2017 年 11 月 27 日 via iPhone
redis 和 mongodb 自带地理位置查询
|
10
shenhhd 2017 年 11 月 27 日
也可以考虑用 Elasticsearch 这个。速度还不错,自带距离。
|
12
freehere 2017 年 11 月 27 日
放到百度地图数据库
|
13
killergun 2017 年 11 月 27 日
高德地图不是现成的
|
14
luman 2017 年 11 月 27 日
可以使用 redis mongo 这些自带地理索引的数据库
也可以用 geohash 自己实现 |
15
vus520 2017 年 11 月 27 日 mongodb, redis, postgres, elasticsearch
|
17
billwsy 2017 年 11 月 27 日 via iPhone
Nearest Neighbor 的那一套方法可以不?
|
18
teddy2725 2017 年 11 月 27 日
redis es pg
|
19
minvacai 2017 年 11 月 27 日
MongoDB, MySQL 其实都可以的
|
20
fivesmallq 2017 年 11 月 27 日
mongo 性能不太好,推荐 es
|
21
xlvecle 2017 年 11 月 27 日
经典做法,经纬度用 geohash 编码,建一个 R Tree
|
22
QAPTEAWH 2017 年 11 月 27 日
普通 b-tree 肯定慢,储存 geo 数据有专门的数据结构(大致是个二维 b-tree)。
主流数据库肯定提供这种机制,文档里查查 spatial、geo 等词就知道了。 |
23
TangMonk 2017 年 11 月 27 日 via Android
redis 简单是简单,但是不如 gis 嵌入到数据库里面方便(比如说查询 50km 之类的 20 岁女性),用 postgres 就方便的多了。
|
24
honeycomb 2017 年 11 月 27 日
支持 R 树的数据库,或者现成提供包装好 geo 数据支持的
这样的功能连 mysql 都有 |
25
mooncakejs 2017 年 11 月 27 日
pg 一波流,全文搜索,地理位置,jsonb 都解决了。
|
26
NUT 2017 年 11 月 27 日 via iPhone
数据分片,然后并发查询 最后合并结果 速度在大也不虚
|
27
opengps 2017 年 11 月 28 日
以前没有知道这么一堆支持地理算法数据库的时候,我用的是关系型 sql server,采用结果不足放大在查的方法,先算经纬度加减 0.001 范围内,根据结果个数是否满足方法 0.001 ,最多放大 10 次,这样实现的。
|
28
sampeng 2017 年 11 月 28 日
elasticsearch,mongodb。专门解决此类问题
|
29
Yang2333 2019 年 10 月 15 日
码一下
|
30
Yang2333 2019 年 10 月 15 日
楼主...最后怎么做的呢
|