忘れないようにメモしておく。
Geo distance filter・・・geoのlocationに含まれるものが存在する場合のみ表示する
ex)pin.locationが200km以内に存在するもののみを表示
"filter" : { "geo_distance" : { "distance" : "200km", "pin.location" : { "lat" : 40, "lon" : -70 } } }
Geo distance range filter・・・geo distanceの中に幅を持たせたいときに、fromとtoの間に存在するもののみを表示する
ex.)pin.locationから200kmから400kmの距離にあるものを表示
"filter" : { "geo_distance_range" : { "from" : "200km", "to" : "400km" "pin.location" : { "lat" : 40, "lon" : -70 } } }
geo bounding box filter(geo_bbox)・・・bounding box内にかかれた座標内に存在するものを表示
ex.)top_leftの座標が(40.73, -74.1), bottom_rightの座標が(40.717, -73.99)内にあるものを表示
"filter" : { "geo_bounding_box" : { "pin.location" : { "top_left" : { "lat" : 40.73, "lon" : -74.1 }, "bottom_right" : { "lat" : 40.717, "lon" : -73.99 } } } }
geo polygon filter・・・3点の三角形の座標内に存在するものを表示
ex.)座標1(40, -70) 座標2(30, -80) 座標3(20, -90)内に存在するものを表示
"filter" : { "geo_polygon" : { "person.location" : { "points" : [ {"lat" : 40, "lon" : -70}, {"lat" : 30, "lon" : -80}, {"lat" : 20, "lon" : -90} ] } } }
geo shape filter・・・geo shape Mappingをしている必要がある。説明割愛。