Elasticsearch - я хочу найти точный день рождения, который ищет пользователь (например, 03221989) и предстоящие дни рождения - PullRequest
0 голосов
/ 22 мая 2018

У меня есть поле даты дня рождения (формат: MMddyyyy || MMdd) в моем индексе.Я хочу найти точный день рождения, который ищет пользователь (например, 03221989), и предстоящие дни рождения.Я могу получить точный день рождения.Но для предстоящих дней рождения я попытался:

  • Запрос диапазона - "gte": "сейчас" -> он не будет работать, так как сейчас также будет поле года, и я хочу найти 03221989 типа Дни рожденияа также
  • Диапазон запроса - "gte": "03221989" -> с этим я могу сортировать записи в порядке возрастания месяца

В моем индексе у меня есть 3записи:

"Birthday": "03221979"
"Birthday": "05271988"
"Birthday": "04161990"

Я хочу, чтобы запросasticsearch возвращал меня в порядке возрастания месяца независимо от года.Возвращаемые данные должны быть:

"Birthday": "03221979"
"Birthday": "04161990"
"Birthday": "05271988"

1 Ответ

0 голосов
/ 22 мая 2018

Вы можете использовать запрос диапазона с указанием форматов.

GET _search
{
  "sort": [
    {
      "dateofbirth": {
        "order": "asc"
      }
    }
  ],
  "query": {
    "range": {
      "dateofbirth": {
        "gte": "03221989",
        "format": "MMddyyyy||yyyy||MMdd"
      }
    }
  }
}

Как-то так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...