поле эластичного поиска соответствует только дате и полю даты - PullRequest
0 голосов
/ 03 мая 2018

Ниже приведено сопоставление для поля даты в индексе эластичного поиска

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

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

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

Ответы [ 2 ]

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

Итак, с вышеуказанными решениями помогите. Я сделал запрос таким образом

"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**]
       }
     }
   }
 }

Приведенный выше запрос возвращает значение true / false.

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

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

...