我想同时按非嵌套字段和嵌套对象/列表中的字段进行过滤。非嵌套字段是日期范围。
示例数据结构如下
{
"order_id": "83",
"order_date": "01/05/2018 17:53:39",
"trans":
[
{
"item_id" : "1",
"amount": 5000.0,
},
{
"item_id" : "2",
"amount": 5000.0
},
{
"item_id" : "3",
"amount": 5000.0,
}
]
}
要按 item_id 过滤,这没有问题:
{
"size": "0",
"query": {
"nested": {
"path": "trans",
"query": {
"bool": {
"must": [
{
"term": {
"trans.item_id": {
"value": "3"
}
}
}
]
}
}
}
}
}
要按 order_date 过滤,下面的查询可以正常工作
{
"query": {
"bool": {
"filter": [
{
"range": {
"order_date": {
"gte": "2020-04-15",
"lte": "2020-04-15"
}
}
}
]
}
}
}
关于如何将两者结合起来的任何提示?