在无痛脚本语言中访问Elasticsearch数组字段时会对其进行排序

时间:2017-02-01 05:48:06

标签: elasticsearch kibana elasticsearch-painless

我有一个整数数组字段,例如my_integer_array

我通过客户端将[3, 4, 1, 2]存储在该字段上,我可以看到通过Kibana在文档的[3, 4, 1, 2]字段上成功设置了my_integer_array

但每当我尝试使用Painless Elasticsearch脚本语言访问该字段时,例如doc['my_integer_array'],它返回[1, 2, 3, 4],而不是[3, 4, 1, 2]。通过doc['my_integer_array'][0]访问它的元素会返回1,而不是3

似乎Painless提供了字段数据的排序版本,而不是原始数组本身。我错过了什么吗?我可以禁用此行为并保留订单吗?

P.S。我正在使用elasticsearch-dsl-py Elasticsearch Python DSL库作为Elasticsearch客户端。

1 个答案:

答案 0 :(得分:0)

您可以访问数组设置_source:true,然后使用params._source [' my_integer_array']这样,数组将以原始状态取消排序。