2017-04-25 3 views
0

私はジオポイントを2倍の配列として持つドキュメントを持つインデックスを持っています。しかし、経度と緯度が間違った順番になっていることがわかります。つまり、[lon, lat]の代わりに[lat, lon]のような配列です。インデックスを再作成することなく、インデックスのすべてのドキュメントでこれらの値を切り替える方法はありますか?または、ジオポイントのフォーマットを配列から文字列に変更すると、それらのデータは"lat, lon"になりますか?これまでのところ、私が見つけた解決策は、データセット全体を再作成することでした。この場合、実用的には時間がかかります。elasticsearchインデックス内のジオポイントの座標の入れ替え

答えて

2

あなたはこのように、すべてのドキュメントを更新し、座標を交換するためにupdate by query APIを使用することができます。私はこのような何かをしようとしていたが、それは働いていなかったいくつかの理由で

POST your_index/_update_by_query 
{ 
    "script": { 
    "inline": "ctx._source.location = [ctx._source.location[1], ctx._source.location[0]]", 
    "lang": "painless" 
    }, 
    "query": { 
    "match_all": {} 
    } 
} 
+0

感謝を:) ;私は、値がスワップされた配列の代わりに文字列を持つようにファイルの場所を更新しようとしていました。しかし、よく、この1つは完全に働いた –

+0

恐ろしい、それはうまくいった。 – Val

関連する問題