У меня есть поле резервирования, в котором хранится массив дат, для которых был зарезервирован элемент.Запрос Elasticsearch для проверки диапазона дат не в массиве дат
Образец данных:
{
reservations: [ "05/03/2015",
"05/04/2015",
"05/05/2015",
"05/18/2015",
"05/19/2015"
]
}
Я хотел бы найти диапазон дат в упругом поиска и возвращает все элементы, которые не содержат даты, попадающие на эти даты.
Итак, у меня есть параметр startDate
и endDate
для поиска. Тем не менее, фильтр диапазона дат для elasticsearch не будет соответствовать этому требованию. Могу ли я сделать это другим способом?
EDIT:
Я думаю, что Date Range фильтр не будет работать, потому что вы можете только сравнить startDate
и endDate
с gte
или lt
к только одно значение справа. У меня в основном есть куча дат слева (начало/конец диапазона дат), которые мне нужно проверить и добавить даты справа (несколько дат резервирования).
Почему бы не диапазон дат работы? Вы можете дать более подробную информацию? Похоже, что вы что-то пробовали и не работали –
@AndreiStefan Я начал с другого способа справиться с этим (http://stackoverflow.com/questions/29820179/elasticsearch-filter-out-multiple-ranges-of-dates) , Но я упростил способ хранения зарезервированных дат - в простом массиве. Но я думаю, что фильтр диапазона дат не работает, потому что вы можете сравнивать «startDate» и «endDate» с «gte» или «lt» только с одним значением справа. У меня в основном есть куча дат слева (начало/конец диапазона дат), которые мне нужно проверить и добавить даты справа (несколько дат резервирования). –
@AyrtonSenna вы нашли решение? – musa