ElasticSearchインデックスには多数のドキュメントがあります。アレイ内に複数の場所があるElasticSearchジオ距離フィルタ - 可能ですか?
{
"name": "foobar",
"locations": [
{
"lat": 40.708519,
"lon": -74.003212
},
{
"lat": 39.752609,
"lon": -104.998100
},
{
"lat": 51.506321,
"lon": -0.127140
}
]
}
によれば
geo_distance
フィルタは、文書ごとに複数の場所/点 で動作することができる:各ドキュメントは、このような複数の場所アレイでを有しています。 1つの位置/ポイントがフィルタに一致すると、 ドキュメントがフィルタに含まれます。
したがって、配列内のすべての位置をチェックするジオ距離フィルタを作成できますか?
これは、残念ながら、動作していないよう:locations
は単一geo_point
しかしgeo_point
の配列ではありませんので、
{
"filter": {
"geo_distance": {
"distance": "100 km",
"locations": "40, -105"
}
}
}
は「QueryParsingException[[myIndex] failed to find geo_point field [locations]
」がスローされます。
ますはい、場所についてgeo_pointマッピングがあります。 – Max
それはうまくいくはずです、私の例を見てください。どのESバージョンを使用しますか?私は0.20.6でそれをテストしました。 – Thorsten
実際には、元のインデックスをヌークした後には*動作します。 geo_pointマッピングを指定してから、配列の配列を挿入するだけでは、私の以前のマッピングはあまりにも複雑でした。どうもありがとう! – Max