在我的索引中,我有一个名为available_weekdays的字段。这是一个工作日从1-7开始的数组。
在我的查询中,我传递了一个格式为{{1}}的start_date。
目标: 我只想显示与start_date工作日匹配的记录。
让我说我将2017-01-01传递给我的查询,即工作日7.我的查询必须将我的通过日期转换为工作日。然后它在available_weekdays字段中检查匹配的工作日。如果在available_weekdays中找到工作日,则返回记录。
ES版本:2.4.4
这可以通过使用脚本过滤器来实现吗?
答案 0 :(得分:3)
是的,您可以使用script query
执行此操作{
"query":{
"bool":{
"filter":{
"script":{
"script":{
"lang":"groovy",
"inline":"doc['available_weekdays'].values.find{it == DateTime.parse(param1).dayOfWeek().get()}",
"params":{
"param1":"2017-01-01"
}
}
}
}
}
}
}