aliyun-sdk-js
aliyun-sdk-js copied to clipboard
OpenSearch uploadDoc方法不能传Array类型的数据
我有一个字段,在OpenSearch设置的类型是INT_ARRAY. 数据示例如下: "producttagids_intarray":[3,3,2,9,39,38,27,21,20,19,16,17,18,15,14,13,12,22,11,10,23,24,25,26,35,34,33,32,31,30,29,4,6,7,8,5]
注意,这是一个INT的数组,当我上传这个字段的时候我拿到一个错误: InvalidParameterType: Expected params.items[0].fields['producttagids_intarray'] to be a string
事实上这个字段不能转成string上传,不然阿里云不认识。 请将上传数据的限制条件修改一下,让他能支持Array类型。
谢谢
我发现没有指定数据类型的数据,都会走到this.validateScalar(),这个方法里面都会把这些用户自定义的数据类型当做String处理,这边的逻辑需要优化
可以考虑用户自定义的字段全部放过,不检查
这里没有配置,应该是默认不进行验证吧,为什么会默认使用 string 进行验证?@xiong-liang
没有配置,验证条件就是空,看 https://github.com/aliyun-UED/aliyun-sdk-js/blob/master/lib/param_validator.js#L100: case null: case undefined: case 'string': return this.validateType(context, value, ['string']);
null和undefined都走到了string
您好,请提供完整调用代码我看一下。
今天也遇到这个问题了,请问这个现在有解决的办法吗?(:з」∠)
请问这个问题解决了吗?我的字段类型是literal_array,也是报这个错?急!
没有配置,验证条件就是空,看 https://github.com/aliyun-UED/aliyun-sdk-js/blob/master/lib/param_validator.js#L100: case null: case undefined: case 'string': return this.validateType(context, value, ['string']);
null和undefined都走到了string
请问最后这个问题,您最后是怎么解决的?
今天也遇到这个问题了,请问这个现在有解决的办法吗?(:з」∠)
请问最后这个问题,您最后是怎么解决的?
今天也遇到这个问题了,请问这个现在有解决的办法吗?(:з」∠)
请问最后这个问题,您最后是怎么解决的?
fork这个项目然后把里面会触发报错的代码改掉,然后用自己的项目发布的npm模块
今天也遇到这个问题了,请问这个现在有解决的办法吗?(:з」∠)
请问最后这个问题,您最后是怎么解决的?
fork这个项目然后把里面会触发报错的代码改掉,然后用自己的项目发布的npm模块
我最后这样解决了:
1)修改他的源代码: node_modules/aliyun-sdk/lib/param_validator.js
大概99行至104行 ···· switch (rules.type) { case null: case undefined: +++ return; case 'string': return this.validateType(context, value, ['string']); ···· 2)调用uploadDoc前,传入fields时,如果值是数组,直接传入值;否则,将值转换成字符串再传入