ドキュメントごとに任意の数の位置データポイントがあります(最大80まで)。これらの場所に対してgeo_distanceフィルターを実行したいと思います。Elasticsearchのドキュメントによると:
The geo_distance filter can work with multiple locations / points per document.
Once a single location / point matches the filter, the document will be included in the filter.
これを達成する方法は決して明確にされていません。インデックス付きドキュメントの外観に次のネストされたフィールドが含まれるように、事前に場所の数を定義する必要があると思います。
{
"pin" : {
"location" : {
"lat" : 40.12,
"lon" : -71.34
}
}
}
{
"alt_pin" : {
"location" : {
"lat" : 41.12,
"lon" : -72.34
}
}
}
次に、何らかの方法でpin.locationとalt_pin.locationに対してフィルターをかけると思います。
任意の数の場所(pin1、pin2、pin3、...)がある場合はどうなりますか?私はこのようなことをすることができますか?
"pin" : {
"locations" : [{
"lat" : 41.12,
"lon" : -72.34
}, {
"lat" : 41.12,
"lon" : -72.34
}]
}
}
その作品にいくつかのバリエーションがありますか?たぶん、lat / lng座標の代わりにgeo_hashesを使用していますか?