elasticsearch仅匹配日期字段的日期

时间:2018-05-03 07:17:34

标签: elasticsearch elasticsearch-6

以下是elasticsearch index

中日期字段的映射
persons:{
    "dob":{
    "type": "date",
    "format": "yyyy-MM-dd"
  }
}

现在我想搜索所有在任何月份的5号生日的人。

提前致谢。

2 个答案:

答案 0 :(得分:0)

你可以在没有重新索引的情况下做到这一点!使用text字段中日期的重新索引,您无法再使用range query对该字段进行搜索。最佳做法是使用无痛脚本doc['dob'].date.dayOfMonth在这里查看:https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting-expression.html#_date_field_api

答案 1 :(得分:0)

所以,以上解决方案有帮助。我以这种方式提出了查询

"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值。