Функция окна поиска Azure
Если у меня есть история документов в моем индексе, можно ли восстановить все последние? Допустим, у меня есть записи о продуктах, и продукт со свойством productid "myprod" появляется 5 раз со слегка отличающимися данными, каждая с отметкой времени. И когда я выполняю поиск по дате, я хочу, чтобы все записи о товаре действовали на эту дату, т. Е. Когда эта дата меньше даты поиска и является максимальной для этого продукта. Легко в SQL. Возможно в поиске Azure? Или даже упругий поиск, если мы должны двигаться?
Спасибо
2 ответа
Вы обязательно можете добавить фильтр диапазона для этой цели и в упругом поиске, и в лазурном поиске.
Я предполагаю, что ваши данные отформатированы как дата, и в эластичном поиске все, что вам нужно сделать, это
"filter": {
"range": {
"<the date field name>": {
"gte": "2018-01-01",
"lte": "2018-01-01"
}
}
}
и в лазурном поиске
filter=<the date field name> ge 2018-01-01T00:00:00-08:00 and <the date field name> le 2018-01-01T00:00:00-08:00
Чтобы отфильтровать записи, как вы описали, вам нужно сделать 3 вещи:
- $ фильтр по дате (как уже предлагал gd vigneshwar)
- $ orderby date
- Выберите только отдельные продукты, которые появляются первыми в отсортированном списке
К сожалению, 3. должно произойти на стороне клиент / сервер.