在我的索引中,我有一个名为 available_weekdays 的字段。这是一个包含 1-7 之间工作日的数组。
在我的查询中,我传递了格式为 'yyyy-MM-dd'
的 start_date。
目标: 我只想显示与 start_date 工作日匹配的记录。
假设我将 2017-01-01 传递给我的查询,即工作日 7。我的查询必须将传递的日期转换为工作日。然后它会在 available_weekdays 字段中检查匹配的工作日。如果在 available_weekdays 中找到工作日,则返回记录。
ES版本:2.4.4
使用脚本过滤器可以实现这一点吗?
最佳答案
是的,您可以使用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"
}
}
}
}
}
}
}
关于elasticsearch - 仅显示匹配的工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47537174/