Учитывая документы, которые вы упомянули, если мне нужен список документов с инвентарем, например, между 2019-01-01
и 2019-01-04
, то я бы расширил свой запрос , как показано ниже , и реализовал егоиспользование запросов диапазона к двум различным полям, заключенным в условие bool must .
inventory_start_date
- между 2019-01-01 и 2019-01-04 inventory_end_date
- между 2019-01-01 и 2019-01-04
Запрос
POST myindex/_search
{
"query": {
"bool": {
"must": [
{
"range": {
"inventory_start_date": {
"gte": "2019-01-01",
"lte": "2019-01-04"
}
}
},
{
"range": {
"inventory_end_date": {
"gte": "2019-01-01",
"lte": "2019-01-04"
}
}
}
]
}
}
}
Ответ
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 2.0,
"hits" : [
{
"_index" : "myindex",
"_type" : "_doc",
"_id" : "1",
"_score" : 2.0,
"_source" : {
"product_code" : "20001",
"color_code" : "001",
"warehouse_id" : 5,
"stock" : 10,
"inventory_start_date" : "2019-01-01",
"inventory_end_date" : "2019-01-04"
}
}
]
}
}
Аналогично, для любых других диапазонов дат вам нужно будет соответственно построить свой запрос.
Дайте мне знать, если это поможет.