# Aggregationの結果を別のドキュメントに登録する方法

**URL:** <https://discuss.elastic.co/t/aggregation/237064>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [June 15, 2020, 5:20am UTC](https://discuss.elastic.co/t/aggregation/237064 "2020-06-15T05:20:35Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![t-nakata](https://avatars.discourse-cdn.com/v4/letter/t/8491ac/32.png) [@t-nakata](https://discuss.elastic.co/u/t-nakata)\
**Post date:** [June 15, 2020, 5:20am UTC](https://discuss.elastic.co/t/aggregation/237064/1 "2020-06-15T05:20:36Z")

</div>

とあるインデックスＡに対し、aggregationを実施した結果を、別のインデックスＢに登録することは可能でしょうか。また、インデックスAにデータを登録した契機で自動的にaggregation結果がインデックスBに格納されるようにしたいです。

例えば、以下のページにある例について

[https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html)

以下のaggregationを実行

```
POST /sales/_search
{
    "query": {
        "term": { "tags": "car" }
    },
    "aggs": {
        "by_sale": {
            "nested" : {
                "path" : "comments"
            },
            "aggs": {
                "by_user": {
                    "terms": {
                        "field": "comments.username",
                        "size": 1
                    },
                    "aggs": {
                        "by_nested": {
                            "top_hits":{}
                        }
                    }
                }
            }
        }
    }
}

```

返却結果

```
{
  ...
  "aggregations": {
    "by_sale": {
      "by_user": {
        "buckets": [
          {
            "key": "baddriver007",
            "doc_count": 1,
            "by_nested": {
              "hits": {
                "total" : {
                   "value": 1,
                   "relation": "eq"
                },
                "max_score": 0.3616575,
                "hits": [
                  {
                    "_index": "sales",
                    "_type" : "_doc",
                    "_id": "1",
                    "_nested": {
                      "field": "comments",  
                      "offset": 0 
                    },
                    "_score": 0.3616575,
                    "_source": {
                      "comment": "This car could have better brakes", 
                      "username": "baddriver007"
                    }
                  }
                ]
              }
            }
          }
          ...
        ]
      }
    }
  }
}

```

上記の返却結果を別のドキュメントに出力したいです。上記の例でいうと、salesインデックスにデータが登録された契機で、aggregation結果を別インデックスに登録したいです

---

<div class="post-metadata">

**Author:** ![kaiba](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kaiba/32/69753_2.png) [@kaiba](https://discuss.elastic.co/u/kaiba)\
**Post date:** [June 15, 2020, 8:56am UTC](https://discuss.elastic.co/t/aggregation/237064/2 "2020-06-15T08:56:36Z")

</div>

Elasticsearchにはそのような機能はなさそうな気がします。  
LogstashでinputにElasticsearch、outputにもElasticsearchを使えばおっしゃってることはできそうな気がします。  
難しくはないと思いますので、それを行うスクリプトを自分で書いてもいいかもしれませんね。

---

<div class="post-metadata">

**Author:** ![t-nakata](https://avatars.discourse-cdn.com/v4/letter/t/8491ac/32.png) [@t-nakata](https://discuss.elastic.co/u/t-nakata)\
**Post date:** [June 16, 2020, 6:19am UTC](https://discuss.elastic.co/t/aggregation/237064/3 "2020-06-16T06:19:21Z")

</div>

ご回答ありがとうございます。試してみます

---

<div class="post-metadata">

**Author:** ![kaiba](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kaiba/32/69753_2.png) [@kaiba](https://discuss.elastic.co/u/kaiba)\
**Post date:** [June 16, 2020, 7:31am UTC](https://discuss.elastic.co/t/aggregation/237064/4 "2020-06-16T07:31:56Z")

</div>

変わったことをしているなぁ…という印象もありますので、Elasticsearchに拘らず他の方法を考えるのも良いと思いますよ。

---

<div class="post-metadata">

**Author:** ![miki](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/miki/32/53228_2.png) [@miki](https://discuss.elastic.co/u/miki)\
**Post date:** [June 16, 2020, 8:12am UTC](https://discuss.elastic.co/t/aggregation/237064/5 "2020-06-16T08:12:13Z")

</div>

transformという選択肢もあります。

[https://www.elastic.co/guide/en/elasticsearch/reference/current/transforms.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/transforms.html)

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 14, 2020, 8:12am UTC](https://discuss.elastic.co/t/aggregation/237064/6 "2020-07-14T08:12:20Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
