gpt4 book ai didi

elasticsearch - Elasticsearch 2.4 Geohash单元查询

转载 作者:行者123 更新时间:2023-12-02 23:28:20 25 4
gpt4 key购买 nike

我在Elasticsearch中有以下映射:

{
"mappings": {
"event": {
"_all": { "enabled": false },
"properties": {
"type": { "type": "string", "index": "not_analyzed"},
"id": { "type": "string"},
"location": { "type": "geo_point"}
}
}
}
}

我想做的是查询由单个geohash定义的 map 区域内本地化的所有记录。
我知道geohash单元查询可以在我的示例中很好地工作,但是不幸的是,需要在geoeash_prefix选项设置为true的情况下对geo_point字段建立索引,elasticearch 2.4中已弃用该选项。

在最新的Elasticsearch版本中,这样做的正确方法是什么?我在文档的任何地方都找不到它。

最佳答案

Elasticsearch 6.0.0-alpha2 documentation says以下内容:

The geohash_cell query has been removed. Instead use the Geo Bounding Box Query



尝试将 bottom_left bounding box参数指定为 your_geohash_prefix + '00...0',并将 top_right指定为 your_geohash_prefix + 'zz...z'。您应在geohash前缀后附加尽可能多的 0z符号,以使其长度为12(最大精度geohash长度)。

例如。对于geohash前缀 dr5r9,它看起来像:
{
"query": {
"bool" : {
"must" : {
"match_all" : {}
},
"filter" : {
"geo_bounding_box" : {
"coordinates" : {
"bottom_left" : "dr5r90000000",
"top_right" : "dr5r9zzzzzzz"
}
}
}
}
}
}
0z分别作为geohash网格的左下角和右上角。

通过将匹配的文档计数与相应精度的geohash网格聚合结果进行比较,我成功地通过这种方法对其进行了测试。但是我仍然有一些情况,有些观点没有落入这种边界框内。不能说这是100%正确的方法。

关于elasticsearch - Elasticsearch 2.4 Geohash单元查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40022857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com