3 回答
TA贡献1820条经验 获得超10个赞
// Convert type []int to type []interface{}
status := make([]interface{}, len(ihids))
for index, value := range ihids {
status[index] = value
}
// Ullaakut aswer
query := elastic.NewBoolQuery()
query = query.Must(elastic.NewRangeQuery("sales_start_date").Gte(date).TimeZone("+09:00"))
query = query.Filter(elastic.NewTermsQuery("item_holder_id", status...))
我有同样的问题,我用这种方式解决了。
TA贡献1744条经验 获得超4个赞
values := make([]interface{}, len(status))
for i, v := range status {
values[i] = v
}
query = query.Filter(elastic.NewTermsQuery("item_holder_id", values...))
TA贡献1752条经验 获得超4个赞
...
您可以通过在您的论点之后添加来简单地修复它ihids
:
query := elastic.NewBoolQuery() query = query.Must(elastic.NewRangeQuery("sales_start_date").Gte(date).TimeZone("+09:00")) query = query.Filter(elastic.NewTermsQuery("item_holder_id", ihids...))
有关其工作原理的解释,这是来自golang 规范:
如果 f 是具有最终参数类型 ...T 的可变参数,则在函数内该参数等同于 []T 类型的参数。在每次调用 f 时,传递给最终参数的参数是类型为 []T 的新切片,其连续元素是实际参数,它们都必须可分配给类型 T。
- 3 回答
- 0 关注
- 222 浏览
添加回答
举报