# Elastic search advanced query for showing price changes on time series indexes

**URL:** <https://discuss.elastic.co/t/elastic-search-advanced-query-for-showing-price-changes-on-time-series-indexes/185921>\
**Category:** Elasticsearch\
**Tags:** painless\
**Created:** [June 15, 2019, 5:01am UTC](https://discuss.elastic.co/t/elastic-search-advanced-query-for-showing-price-changes-on-time-series-indexes/185921 "2019-06-15T05:01:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![chandan\_mishra1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/chandan_mishra1/32/48167_2.png) [@chandan\_mishra1](https://discuss.elastic.co/u/chandan_mishra1)\
**Post date:** [June 15, 2019, 5:01am UTC](https://discuss.elastic.co/t/elastic-search-advanced-query-for-showing-price-changes-on-time-series-indexes/185921/1 "2019-06-15T05:01:42Z")

</div>

I have separated my time-series data into day wise indexes. Let's say I have 2 days indexes.

1. index1 **data-timeseries-14-04-2019** :

example data:

```
{{"_id": 1,
  "product_name": "mobile1",
  "product_id": "12145",
  "created_at": "2014-04-14",
  "offer_price": 89
  },
 {"_id": 2,
  "product_name": "mobile2",
  "product_id": "12146",
  "created_at": "2014-04-14",
  "offer_price": 70
  }
 }

```

1. index2 **data-timeseries-15-04-2019** :

**Here unique products are identified by their "product\_id"**

I want to write a query showing **number of products, those have changed their offer\_price.**

please help me out.

I tried something like this

```
{
    "aggs": {
        "distinct_by_product_id": {
            "terms": {
                "field": "product_id.keyword",
                "min_doc_count": 2,
                "size": 10

            },
            "aggs": {"count_distinct_prices":
                {"cardinality": {
                    "field": "offer_price"
                }}
            }
        }}

}

```

`

First applying term aggregation on product\_id and then finding the distinct no offer\_price. if the distinct no is larger than 1, that product is counted as price variant product.

- But as I am using term aggregation, for large no of data I can't get all products data.

---

<div class="post-metadata">

**Author:** ![abdon](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/abdon/32/9195_2.png) [@abdon](https://discuss.elastic.co/u/abdon)\
**Post date:** [June 16, 2019, 4:03pm UTC](https://discuss.elastic.co/t/elastic-search-advanced-query-for-showing-price-changes-on-time-series-indexes/185921/2 "2019-06-16T16:03:23Z")

</div>

You can wrap your terms aggregation in a [composite aggregation](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-composite-aggregation.html). The composite aggregation allows you to paginate through all buckets.

---

<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, 2019, 4:03pm UTC](https://discuss.elastic.co/t/elastic-search-advanced-query-for-showing-price-changes-on-time-series-indexes/185921/3 "2019-07-14T16:03:53Z")

</div>

Closed on July 14, 2019, 4:03pm UTC

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