【发布时间】:2015-05-12 05:36:59
【问题描述】:
我是 ElasticSearch 的新手,我想了解使用 geohashes 和四叉树之间的区别。在reference 中写道:
- GeohashPrefixTree - 将 geohash 用于网格方块。 Geohashes 是交错的纬度和经度位的 base32 编码字符串。所以哈希值越长,它就越精确。添加到 geohash 的每个字符代表另一个树级别,并为 geohash 添加 5 位精度。一个 geohash 代表一个矩形区域,有 32 个子矩形。 Elasticsearch 中的最大级别数为 24。
- QuadPrefixTree - 将四叉树用于方格。与 geohash 类似,四叉树将纬度和经度的位交错,生成的哈希是一个位集。四叉树中的树级别表示该位集中的 2 个位,每个坐标一个位。 Elasticsearch 中四叉树的最大级别数为 50。
我不明白其中的区别,例如,如果我明白这一点: 纬度/经度 = 42.9123456, 21.799986 geohash 是 srxs05fq8。 谁能解释我如何计算四叉树表示?
此外,什么时候更喜欢一个比另一个更好?
【问题讨论】:
-
Geohash 本身是一种四叉树:参见“点四叉树”或“点区域四叉树”更广泛的概念。
标签: elasticsearch geospatial spatial quadtree