Elasticsearch соответствует только дате поля даты

Ниже приведено сопоставление поля даты в индексе elasticsearch.

persons:{
    "dob":{
    "type": "date",
    "format": "yyyy-MM-dd"
  }
}

Теперь я хочу найти всех людей, у которых день рождения 5 числа любого месяца.

Заранее спасибо.

1
0
433
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

вы можете сделать это без переиндексации! С переиндексированием даты в поле text вы больше не сможете выполнять поиск с помощью range query по этому полю. Лучше всего использовать безболезненный сценарий doc['dob'].date.dayOfMonth. Взгляните сюда: https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting-expression.html#_date_field_api

Ответ принят как подходящий

Итак, с помощью вышеуказанных решений. Я сделал запрос таким образом

"script_fields": {
   "isDOBMatch": {
     "script": {
         "lang":"painless",
       "inline": "doc.dob.date.dayOfMonth==params.dob_match_vals",
       "params": {
         "dob_match_vals": [**pass the value which u want to match**]
       }
     }
   }
 }

Вышеупомянутый запрос возвращает истинное / ложное значение.

Другие вопросы по теме