У меня есть индекс ElasticSearch, где данные индексируются, как я скопировал и вставил внизу.
Идея состоит в том, что у него есть документы, а «официальное имя» документа находится в массиве. Это связано с тем, что официальное название документа действительно в течение определенного периода (т. е. между 2014 и 2015 годами имя было X, а между 2016 и 2018 годами — Y).
Мне нужен простой запрос, который находит документы на основе атрибута name
, но там, где он действителен сегодня.
Карта документа:
"Company": {
"properties": {
"vatNumber": {
"type": "string"
},
"names": {
"type": "nested",
"include_in_parent": true,
"properties": {
"name": {
"type": "string"
},
"period": {
"properties": {
"validFrom": {
"type": "date",
"format": "dateOptionalTime"
},
"validTo": {
"type": "date",
"format": "dateOptionalTime"
}
}
},
"lastUpdated": {
"type": "date",
"format": "dateOptionalTime"
}
}
}}}
Моя попытка:
Я использую NEST (клиент .NET). Я предполагаю, что есть 2 общих «проблемы»:
- Мне нужно указать свойство в массиве (
name
) - Мне нужно проверить, что
validTo
действительноnull
(и игнорировать другие объекты в массиве)
Однако, после поиска, я совершенно потерялся в этих двух!