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

时间:2017-06-24 23:23:31

标签: elasticsearch elasticsearch-painless

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

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

假设一个像这样的简单文件

$perl_data{form . $num}{filed1} = {name_field => $name, type => $type, length => $max};
..code..
..code..
..code..
??? how i can add "key => $value" into $perl_data{form . $num}{filed1}?

使用此查询检索:

{
    "ar":[5,4,3,2,1]
}

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

我无法使用_source,因为我需要在“has_child”查询中使用它,该查询不支持_source。

任何想法?

1 个答案:

答案 0 :(得分:1)

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

similar question

要使字段可搜索,数组字段将按顺序编制索引,并且您无法获取脚本中的第一个值,如doc['ar'][0]

如果您希望原始数组包含订单,您可以使用_source将其设为params._source['ar'],结果将为[5,4,3,2,1],但速度要比使用doc