在弹性搜索中,我要过滤生日在指定日期范围之间的成员,例如: 查找生日在'08 -01'和'09 -01'之间的会员;
存储在es中的生日是这样的: 2018-03-05
这困扰了我很久了,需要帮助!
我尝试了以下脚本: doc.birthday.value.dayOfYear> = params.start && doc.birthday.value.dayOfYear <= params.end;
但这无法处理the年!
下面是相关的代码。
yd := time.Now().YearDay()
script := elastic.NewScript("doc.birthday.size() != 0 && doc.birthday.value.toInstant().atZone(ZoneId.of(params.tz)).dayOfYear >= params.start && doc.birthday.value.toInstant().atZone(ZoneId.of(params.tz)).dayOfYear <= params.end").Lang("painless").Param("start", yd).Param("end", yd+c.StartRecent).Param("tz", "Asia/Shanghai")
q = elastic.NewScriptQuery(script)