これまでのところ、このガイドに従って、ネイティブ Java スクリプトを Elasticsearch で動作させるようにしました。通常のネストされていないフィールドへのアクセスは、 を使用して正常に機能しdoc().field("fieldname")
ます。
ネストされたフィールドでも同じことができますか? それらをループしてネストされたフィールドにアクセスするにはどうすればよいですか?
編集:以下の imotov の回答を読んだ後、include_in_root
またはを使用してルート ドキュメントにネストされたフィールドを含めることになりましたinclude_in_parent
( docsを参照)。
GeoPoint[] locations = ((GeoPointDocFieldData)doc().field("places.location")).getValues();
for (GeoPoint location : locations) {
// Do Stuff
double lat = location.lat();
double lon = location.lon();
}