世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。
问:geohash_grid有什么特点?
答:
问:geohash_grid如何使用?
答:
# 删除
DELETE /geohash_grid_test
# 映射
PUT /geohash_grid_test
{
"mappings": {
"properties": {
"loc": {"type": "geo_point"}
}
}
}
# 索引
POST /geohash_grid_test/_bulk?routing=1&refresh
{"index": {"_id": 1}}
{"loc": "13, 15"}
{"index": {"_id": 2}}
{"loc": "14, 16"}
{"index": {"_id": 3}}
{"loc": "16, 18"}
{"index": {"_id": 4}}
{"loc": "17, 19"}
{"index": {"_id": 5}}
{"loc": "18, 20"}
# 搜索
GET /geohash_grid_test/_search?size=0
{
"aggs": {
"geohash_grid_aggs": {
"geohash_grid": {
"field": "loc",
"precision": 3,
"bounds": {
"top_left": "20,10",
"bottom_right": "14,1"
}
}
}
}
}
# 搜索 - 根据上一个的key选择区域放大,让精度变大
GET /geohash_grid_test/_search?size=0
{
"aggs": {
"geohash_grid_aggs": {
"geohash_grid": {
"field": "loc",
"precision": 8,
"bounds": {
"top_left": "s7j",
"bottom_right": "s7j"
}
}
}
}
}
# 搜索
GET /geohash_grid_test/_search?size=0
{
"aggs": {
"geohash_grid_aggs": {
"filter": {
"geo_bounding_box": {
"loc": {
"top_left": {
"lat": 20,
"lon": 10
},
"bottom_right": {
"lat": 14,
"lon": 1
}
}
}
},
"aggs": {
"inner_grid": {
"geohash_grid": {
"field": "loc",
"precision": 9
}
}
}
}
}
}



