geohash美团附近酒店搜索-技术方案
美团附近酒店搜索-技术方案
自Redis 3.2开始,Redis基于geohash和zset提供了地理位置相关功能。
什么是Geohash
Geohash是一种地址编码,它能把二维的经纬度编码成一维的字符串。比如,世界之窗的编码是ws101xy1rp0。
Redis Geo模块包含了以下6个命令:
GEOADD
将给定的位置对象(纬度、经度、名字)添加到指定的key;
39.100.196.99:6379> geoadd hotel 113.9807127428 22.5428248089 "世界之窗" 113.9832042690 22.5408496326 "南山威尼斯酒店" 114.0684865267 22.5412294122 "福田喜来登酒店" 114.3135524539 22.5999265998 "大梅沙海景酒店" 113.9349465491 22.5305488659 "南山新年酒店" 114.0926367279 22.5497917634 "深圳华强广场酒店"
6
39.100.196.99:6379> zrange hotel 0 -1
南山新年酒店
世界之窗
南山威尼斯酒店
福田喜来登酒店
深圳华强广场酒店
大梅沙海景酒店
注:
- 这里我们采用的是中文存储,如果出现了乱码,redis命令的登录命令加上 --raw
例如: ./redis-cli --raw - 查看某个地址的经纬度,建议用 http://www.gpsspg.com/maps.htm,本课程就是用这个网址查出某个地址的具体经纬度
GEOPOS
从key里面返回所有给定位置对象的位置(经度和纬度);
39.100.196.99:6379> GEOPOS hotel "世界之窗"
113.98071080446243286
22.54282525199023013
GEOHASH:
返回一个或多个位置对象的Geohash表示;
39.100.196.99:6379> GEOHASH hotel "世界之窗"
ws101xy1rp0
GEODIST key member1 member2 [unit]
返回两个给定位置之间的距离;
指定单位的参数 unit 必须是以下单位的其中一个:
– m 表示单位为米。
– km 表示单位为千米。
– mi 表示单位为英里。
– ft 表示单位为英尺。
39.100.196.99:6379> GEODIST hotel "世界之窗" "南山威尼斯酒店" m
337.4887
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
给定一个经纬度,然后以半径为中心,计算出半径内的数据。
39.100.196.99:6379> GEORADIUS hotel 113.9410499639 22.5461508801 10 km WITHDIST WITHCOORD count 10
南山新年酒店
1.8451
113.93494695425033569
22.53054959741555052
世界之窗
4.0910
113.98071080446243286
22.54282525199023013
南山威尼斯酒店
4.3704
113.98320525884628296
22.54085070420710224
– WITHDIST: 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。 距离的单位和用户给定的范围单位保持一致。
– WITHCOORD: 将位置元素的经度和维度也一并返回。
– WITHHASH: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。 这个选项主要用于底层应用或者调试, 实际中的作用并不大。
– ASC、DESC 排序方式,按照距离的 升序、降序排列
– STORE key1 把结果存入key1,zset格式,以坐标hash为score
– STOREDIST key2 把结果存入key2,zset格式,以距离为score
GEORADIUSBYMEMBER key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
GEORADIUSBYMEMBER 和 GEORADIUS 一样的功能,区别在于,GEORADIUS是以经纬度去查询,而GEORADIUSBYMEMBER是以当前集合中的某个member元素来查询
39.100.196.99:6379> GEORADIUSBYMEMBER hotel "世界之窗" 10 km WITHDIST WITHCOORD count 10
世界之窗
0.0000
113.98071080446243286
22.54282525199023013
南山威尼斯酒店
0.3375
113.98320525884628296
22.54085070420710224
南山新年酒店
4.8957
113.93494695425033569
22.53054959741555052
福田喜来登酒店
9.0190
114.06848877668380737
22.54122837765984144
geohash美团附近酒店搜索-技术方案相关推荐
- 程序员业务,微信全文搜索技术优化
一.iOS微信全文搜索技术的现状 全文搜索是使用倒排索引进行搜索的一种搜索方式.倒排索引也称为反向索引,是指对输入的内容中的每个Token建立一个索引,索引中保存了这个Token在内容中的具体位置.全 ...
- 微信全文搜索技术优化
一.iOS 微信全文搜索技术的现状 全文搜索是使用倒排索引进行搜索的一种搜索方式.倒排索引也称为反向索引,是指对输入的内容中的每个Token建立一个索引,索引中保存了这个Token在内容中的具体位置. ...
- KDD Cup 2020 Debiasing比赛冠军技术方案及在美团广告的实践
ACM SIGKDD (国际数据挖掘与知识发现大会,简称 KDD)是数据挖掘领域的国际顶级会议. 美团到店广告平台搜索广告算法团队基于自身的业务场景,一直在不断进行前沿技术的深入优化与算法创新.团队的 ...
- 预训练技术在美团到店搜索广告中的应用
猜你喜欢 0.2021年轻人性生活调研报告1.如何搭建一套个性化推荐系统?2.从零开始搭建创业公司后台技术栈3.2021年10月份热门报告免费下载4.微博推荐算法实践与机器学习平台演进5.腾讯PCG推 ...
- KDD Cup 2020 自动图学习比赛冠军技术方案及在美团广告的实践
ACM SIGKDD (国际数据挖掘与知识发现大会,简称 KDD)是数据挖掘领域的国际顶级会议. 美团到店广告平台搜索广告算法团队基于自身的业务场景,一直在不断进行前沿技术的深入优化与算法创新.团队的 ...
- 直播报名|美团技术沙龙:美团算法实践——搜索、广告、推荐专场
[美团技术沙龙]由美团技术团队和美团科协主办,每期沙龙邀请美团及其他互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域. 从2020年9月起,美团技术沙龙还将打造一系列学术活动,包括顶会论 ...
- ElasticSearch技术方案(二)——站内搜索
文章目录 背景 ES实现站内搜索 ES实现站内搜索 流程图 站内搜索实现分析 SpringBoot整合SpringData ElasticSearch 1. 引入依赖: 2.配置application ...
- 去哪儿酒店实时报价搜索技术分享
去哪儿酒店实时报价搜索技术分享 去哪儿酒店搜索每天处理近千万次用户的实时报价查询请求, 涉及到200多家目标网站的近30万家酒店. 对其内容详细阅读
- 【KG】美团知识图谱问答技术实践与探索
美团知识图谱问答技术实践与探索 1 背景与挑战 2 解决方案 2.1 Query理解 2.2 关系识别 2.3 复杂问题理解 2.3.1 带约束问题 2.3.2 多跳问题 2.4 观点问答 2.5 端 ...
最新文章
- Linux下安装java(Ubuntu为例)
- java 图片动画_java在窗口中添加图片做动画,怎么一闪一闪的?
- 制作win7+ubuntu +winPE+CDlinux多系统启动U盘
- @ResponseBody ResponseEntity
- 解析xml文件的几种技术
- 播种数据MVC 6 .NET Core应用程序
- firefox的dl dt dd布局Hack
- ASP.NET 2.0 Internet安全之参考实现
- 算法:整数除法上取整
- 专业的数据库连接工具:DBeaverEE for Mac中文版
- 精品微信小程序后勤服务管理系统+后台管理系统|前后分离VUE
- 小白如何做一个Python人工智能语音助手
- pygame 实现 pong 小游戏
- 修改谷歌浏览器缓存位置总结
- Vendor NDK
- 独立显卡跟集成显卡有什么差别?
- list remove 失效的解决方式
- c语言xps,SCI论文中XPS这么写
- python画图:小圆覆盖大圆问题
- 韩国CMS集团用金属材质设计与表面处理技术引领全球市场
热门文章
- Google发布Puppeteer 1.0
- GNU make manual 翻译(三十八)
- .Net IOC框架入门之二 CastleWindsor
- 测试MySQL性能的几款工具
- JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤...
- (二)、WCF通道模型
- CVTE 2017 秋季校招一面(C++ 后台)
- C#用GDI画任意形状的form
- HTML笔记——bootstrap-select、table、tableExport、layer
- 为什么要用dubbo,dubbo是什么,为什么要和zk结合使用?