laravel使用es搜索报[terms] query does not support [0] within lookup element

738 阅读1分钟

在laravel项目中对接了es搜索引擎,使用了一个三方封装包,按照指定格式传入es的查询条件即可; 有个字段查询需要用到类似mysql的in查询格式,spread字段查询范围为多个值,查询范围正常使用放在一个数组中即可,例如$spread=[11,22,33,44]; 但是由于结果集我使用数组函数处理了下,结果es提示错误:

image.png 打印数组看着好像格式没问题,最终发现数组被处理成了关联数组,但是es需要的是索引数组;

打印对比:

image.png

正确的格式:

image.png

分析原因应该是因为es是java写的,类型要求比较严格,查询范围为多个的时候,使用的数组应该是严格的索引以0开始的连续自增的索引数组;