热门推荐
用ES实现根据经纬度由近及远推荐店铺
2024-12-05 23:12  浏览:166

ES中特有的类型geo_point,是用来存储地图类型的。店铺推荐、地图搜索和外卖平台等,实现目标距离你多少米,就是用这个数据类型做出来的。

用ES实现根据经纬度由近及远推荐店铺

其中,ES支持的地图检索方式有以下几种

geo_distance:直线距离检索,如给定点A,要求返回地图上距离点A三千米的店铺

geo_bounding_box:以两个点确定一个矩形,获取在矩形内的全部数据

geo_polygon:以多个点,确定多边形,获取多边形内的全部数据

本文则以geo_distance为例说明。

2.1 新建ES索引
2.2 添加索引数据
2.3 执行ES搜索

搜索条件

【query中的参数】

location:指定定位的经纬度,一般取用户定位点的经纬度。

lat:纬度。

lon:经度。

distance:距离指定定位的最远距离,即本次搜索结果必须在指定定位点到该距离之间。

distance_type:arc表示圆形范围

【sort】中的参数

location:指定定位的经纬度,一般取用户定位点的经纬度。

order:距离排序,asc正序,desc则是倒序。

unit:距离单位,m就是米,km就是千米。

执行搜索,得到搜索结果

根据前面的搜索条件,执行搜索后得到是按照当前定位点的经纬度,查询距离3km以内的所有店铺,由近及远的排序的结果。

location:每个店铺所在的经纬度。

sort:每个店铺距离当前定位点的距离。前面搜索条件我们设置了单位为米,所以这里就是距离1810米的意思。

    以上就是本篇文章【用ES实现根据经纬度由近及远推荐店铺】的全部内容了,欢迎阅览 ! 文章地址:http://sicmodule.glev.cn/quote/11239.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 歌乐夫资讯移动站 http://sicmodule.glev.cn/mobile/ , 查看更多