以前の質問fields
で、クエリ内のquery_string
と、それがドキュメントのネストされたフィールドの検索にどのように役立つかを紹介しました。
{
"query": {
"query_string": {
"fields": ["*.id","id"],
"query": "2"
}
}
}
しかし、それはマッチングに対してのみ機能します。比較を行いたい場合はどうすればよいですか? いくつかの読み取りとテストの後、次のようなクエリrange
はサポートしていないようですfields
。range
ドキュメント階層のどこにでも散らばっている可能性のあるフィールドに対して、日付などのクエリを実行する方法はありますか?
つまり、次のドキュメントを検討してください。
{
"id" : 1,
"Comment" : "Comment 1",
"date" : "2016-08-16T15:22:36.967489",
"Reply" : [ {
"id" : 2,
"Comment" : "Inner comment",
"date" : "2016-08-16T16:22:36.967489"
} ]
}
ネストされたフィールドのために、アドレスを明示的に指定せずに、指定されたドキュメントに一致するdate
フィールド ( など) を検索するクエリはありますか? このようなもの(次のクエリが間違っていることはわかっています):date > '2016-08-16T16:00:00.000000'
Reply.date
{
"query": {
"range" : {
"date" : {
"gte" : "2016-08-16T16:00:00.000000",
},
"fields": ["date", "*.date"]
}
}
}