首页 > 解决方案 > Elasticsearch 查询以获取数组大小

问题描述

我的 Elasticsearch 文档看起来像:

Doc 1:
{
  "name" : "Tom",
  "values" : [
    { "value" : "value 1" },
    { "value" : "value 2" },
    { "value" : "value 3" }
  ]
}

Doc 2:
{
  "name" : "Bob",
  "values" : [
    { "value" : "value 1" },
    { "value" : "value 2" }
  ]
}

如何通过文档查询values数组大小大于 2?

标签: elasticsearchelasticsearch-query

解决方案


您需要将此添加到您的布尔查询中。

"filter" : {
    "script" : {
        "script" : "doc['values'].values.size() > 2"
    }
}

filter过滤符合条件的文档。

size()返回数组的大小。

doc['values']寻找values领域。


推荐阅读