Имея это сопоставление:
"title": { "type": "text"},
"description": { "type": "text" },
"created_at": { "type": "date" },
"modified_at": { "type": "date" },
"funnel": {
"type": "nested",
"dynamic": "strict",
"properties": {
"id": { "type": "long" },
"stages": {
"type": "nested",
"dynamic": "strict",
"properties": {
"stage": {"type": "long"},
"date_in": {"type": "date"},
"date_out": {"type": "date"}
}
}
}
}
Я пытался получить все документы с хотя бы одним вложенным документом в течение периода времени (с 2018-10-01 по 2018-10-05)или что они все еще находятся в одной стадии (date_out null) со следующим запросом:
"query": {
"bool": {
"filter": {
"bool": {
"must": [
{
"nested": {
"query": {
"range": {
"funnel.stages.date_in": {
"lte": "2018-10-05"
}
}
},
"path": "funnel.stages",
"ignore_unmapped": false,
"score_mode": "none"
}
},
{
"bool": {
"should": [
{
"nested": {
"query": {
"range": {
"funnel.stages.date_out": {
"gte": "2018-10-01"
}
}
},
"path": "funnel.stages",
"ignore_unmapped": false,
"score_mode": "none"
}
},
{
"bool": {
"must_not": [
{
"exists": {
"field": "funnel.stages.date_out"
}
}
],
"adjust_pure_negative": true
}
}
],
"adjust_pure_negative": true
}
}
],
"adjust_pure_negative": true
}
}
}
}
Я думал, что это был способ сделать это наasticsearch, но затем я получил этот документ как совпадение:
"_source": {
"title": "sdfgsdfgsdf",
"description": "",
"created_at": "2018-07-17T13:45:39+00:00",
"modified_at": "2018-07-25T09:58:40+00:00",
"funnel": {
"id": "57",
"stages": [
{
"stage": "337",
"date_in": "2018-07-17T13:45:40+00:00",
"date_out": "2018-07-25T09:58:36+00:00"
}
]
}
}
Я не знаю, что я делаю неправильно с запросом на данный момент: p
Любая помощь очень ценится!