elasticsearch doc ['...']数组和顺序

Hol*_*ill 5 elasticsearch elasticsearch-painless

我需要从脚本访问存储在数组中的文档值。数组中项目的顺序很重要。

使用doc ['...']检索数组会混淆顺序:-(

假设像这样的简单文件

{
    "ar":[5,4,3,2,1]
}
Run Code Online (Sandbox Code Playgroud)

使用此查询检索到:

{
  "query":{
    "match_all":{}
  },
  "script_fields": {
    "values": {
      "script": {
        "inline":"return doc['ar']"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

将以反向(排序)顺序返回数组:[1,2,3,4,5]有没有办法防止这种行为?

我不能诉诸于_source,因为我需要在“ has_child”查询中使用它,该查询不支持_source。

有任何想法吗?

ddd*_*919 3

需要知道Elasticsearch如何索引数组字段。

类似的问题

为了使字段可搜索,数组字段将按顺序索引,并且您无法像这样获取脚本中的第一个值doc['ar'][0]

如果你想要有顺序的原始数组,你可以使用_source它来获取它params._source['ar'],结果将是[5,4,3,2,1],但比使用慢doc