http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4275|回复: 4

[搜索引擎] 42-Elasticsearch 之Geohash 单元查询

[复制链接]
发表于 2019-1-8 08:53:32 | 显示全部楼层 |阅读模式
geohash_cell 查询做的事情非常简单: 把经纬度坐标位置根据指定精度转换成一个 geohash ,然后查找所有包含这个 geohash 的位置——这是非常高效的查询。
[C#] 纯文本查看 复制代码
GET /attractions/restaurant/_search

{

  "query": {

    "constant_score": {

      "filter": {

        "geohash_cell": {

          "location": {

            "lat":  40.718,

            "lon": -73.983

          },

          "precision": "2km" 

        }

      }

    }

  }

}



precision 字段设置的精度不能高于映射时 geohash_precision 字段指定的值。

此查询将 lat/lon 坐标点转换成对应长度的 geohash —— 本例中为 dr5rsk—然后查找所有包含这个短语的位置。

然而,如上例中的写法可能不会返回 2km 内所有的餐馆。要知道 geohash 实际上仅是个矩形,而指定的点可能位于这个矩形中的任何位置。有可能这个点刚好落在了 geohash 单元的边缘附近,但过滤器会排除那些落在相邻单元的餐馆。

为了修复这个问题,我们可以通过设置 neighbors参数为 true ,让查询把周围的单元也包含进来:
[C#] 纯文本查看 复制代码
GET /attractions/restaurant/_search

{

  "query": {

    "constant_score": {

      "filter": {

        "geohash_cell": {

          "location": {

            "lat":  40.718,

            "lon": -73.983

          },

          "neighbors": true, 

          "precision": "2km"

        }

      }

    }

  }

}




此查询将会寻找对应的 geohash 和包围它的 geohashes 。

明显的, 2km 精度的 geohash 加上周围的单元,最终导致一个范围极大的搜索区域。此查询不是为精度而生,但是它非常有效率,而且可以作为更高精度的地理位置过滤器的前置过滤器。

提示
将 precision 参数设置为一个距离可能会有误导性。 2km 的 precision 会被转换成长度为 6 的 geohash 。实际上它的尺寸是约 1.2km x 0.6km。你可能会发现明确的设置长度为 5 或 6 会更容易理解。

此查询的另一个优点是,相比 geo_bounding_box 查询,它支持一个字段中有多个坐标位置的情况。 我们在 优化盒模型 中讨论过,设置 lat_lon 选项也是一个很有效的方式,但是它只在每个字段只有单个坐标点的情况下有效。



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2019-1-8 09:03:28 | 显示全部楼层
发表于 2019-1-8 09:39:10 | 显示全部楼层
我只是路过打酱油的。
发表于 2019-1-8 14:30:16 | 显示全部楼层
强烈支持楼主ing……
发表于 2019-1-8 16:42:33 | 显示全部楼层
我只是路过打酱油的。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-22 08:05

© 2014-2021

快速回复 返回顶部 返回列表