Elasticsearch:我们可以将聚合查询用作子查询吗

时间:2019-07-17 07:32:21

标签: elasticsearch

我有在JSON对象下面包含“标签”的文档。
标签是用户输入,可以是任何内容。

{
  "tags":[
    {
      "tag":"test"
    },
    {
      "tag":"prod"
    },
    {
      "tag":"dev"
    }
    ]
}

我在下面使用了标签的映射,因此在执行搜索时,我应该只获取文档的一部分而不是整个文档。

{
  "mappings": {
    "doc": {
      "properties": {
        "tags": {
          "type": "nested",
          "properties": {
            "tag": {
              "type": "text",
              "fields": {
                "keyword": {
                  "type": "keyword",
                  "ignore_above": 256
                }
              }
            }
          }
        }
      }
    }
  }
}

以下查询将在文档中返回唯一标签。

{
  "size": 0,
  "aggs": {
    "Nesting": {
      "nested": {
        "path": "tags"
      },
      "aggs": {
        "keyword_names": {
          "terms": {
            "field": "tags.tag.keyword"
          }
        }
      }
    }
  }
}

我想对上述查询返回的唯一结果进行搜索。
可以在单个查询中执行此操作吗?即 聚合查询可以用作子查询或另一个搜索查询的输入吗?
这样我就可以使用某些搜索条件进一步过滤结果

0 个答案:

没有答案