以下是elasticsearch index
中日期字段的映射persons:{
"dob":{
"type": "date",
"format": "yyyy-MM-dd"
}
}
现在我想搜索所有在任何月份的5号生日的人。
提前致谢。
答案 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值。