# Search and get distenic result base on create\_at in elasticsearch

**URL:** <https://discuss.elastic.co/t/search-and-get-distenic-result-base-on-create-at-in-elasticsearch/123408>\
**Category:** Elasticsearch\
**Created:** [March 11, 2018, 5:37am UTC](https://discuss.elastic.co/t/search-and-get-distenic-result-base-on-create-at-in-elasticsearch/123408 "2018-03-11T05:37:09Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![mohammad\_S07](https://avatars.discourse-cdn.com/v4/letter/m/cdc98d/32.png) [@mohammad\_S07](https://discuss.elastic.co/u/mohammad_S07)\
**Post date:** [March 11, 2018, 5:37am UTC](https://discuss.elastic.co/t/search-and-get-distenic-result-base-on-create-at-in-elasticsearch/123408/1 "2018-03-11T05:37:09Z")

</div>

I store data in the Elasticsearch like this:

> ```
> {
> "_index": "my_index",
> "_type": "doc",
> "_id": "6lDquGEBFRQVe0x93eHk",
> "_version": 1,
> "_score": 1,
> "_source": {
> "Barcode": "6947503728601",
> "category":"pen",
> "name": "panter",
> "price":"4$",
> "created_at": "1519225855"
> }
> }
> 
> ```

Each data set has a barcode. For example, all panter pen have "6947503728601" as a barcode but they have different `created_at` values.

I want to search for partial barcode number(69475) and get all matching docs that are unique in barcode field with the latest one of them based on the `created_at` value (I want to get latest document data for each barcode number)

1. How can I implement the search?

2. is my algorithm correct?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 11, 2018, 8:22am UTC](https://discuss.elastic.co/t/search-and-get-distenic-result-base-on-create-at-in-elasticsearch/123408/2 "2018-03-11T08:22:20Z")

</div>

Use a ngram based analyzer for partial matching and sort by created\_at field?f

---

<div class="post-metadata">

**Author:** ![mohammad\_S07](https://avatars.discourse-cdn.com/v4/letter/m/cdc98d/32.png) [@mohammad\_S07](https://discuss.elastic.co/u/mohammad_S07)\
**Post date:** [March 11, 2018, 10:30am UTC](https://discuss.elastic.co/t/search-and-get-distenic-result-base-on-create-at-in-elasticsearch/123408/4 "2018-03-11T10:30:47Z")

</div>

I think you miss understood my question.

my data is like this:

```
[   
  {   
      product_name:'pen',   
      product_category:'writing_supplies',   
      price:2,   
      quantity:1000,  
      created_at: "1519225855"  
  },   
  {   
      product_name:'pen',   
      product_category:'writing_supplies',   
      price:5,   
      quantity:150,  
      created_at: "1519281254"  
  },   
  {   
      product_name:'uni_pen',   
      product_category:'writing_supplies',   
      price:45,   
      quantity:10,  
      created_at: "1519281732"  
  },   
]  

```

i want to search products with '`product_name`' and group by '`product_name`' and get the last one based on their '`created_at`'.

for example:

after searching for : '`pen`' ,

I want following result:

```
[  
    {   
          product_name:'pen',   
          product_category:'writing_supplies',   
          price:5,   
          quantity:150,  
          created_at: "1519281254"  
      },  
      {   
          product_name:'uni_pen',   
          product_category:'writing_supplies',   
          price:45,   
          quantity:10,  
          created_at: "1519281732"  
    },   
]
```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 11, 2018, 11:17am UTC](https://discuss.elastic.co/t/search-and-get-distenic-result-base-on-create-at-in-elasticsearch/123408/5 "2018-03-11T11:17:33Z")

</div>

May be a terms aggregation and then an inner top hits agg sorted by date with size: 1 is what you need.

---

<div class="post-metadata">

**Author:** ![mohammad\_S07](https://avatars.discourse-cdn.com/v4/letter/m/cdc98d/32.png) [@mohammad\_S07](https://discuss.elastic.co/u/mohammad_S07)\
**Post date:** [March 11, 2018, 11:40am UTC](https://discuss.elastic.co/t/search-and-get-distenic-result-base-on-create-at-in-elasticsearch/123408/6 "2018-03-11T11:40:55Z")

</div>

what about size 1 ?  
is it returns one for each product\_category or it returns just one product?

---

<div class="post-metadata">

**Author:** ![mohammad\_S07](https://avatars.discourse-cdn.com/v4/letter/m/cdc98d/32.png) [@mohammad\_S07](https://discuss.elastic.co/u/mohammad_S07)\
**Post date:** [March 11, 2018, 11:42am UTC](https://discuss.elastic.co/t/search-and-get-distenic-result-base-on-create-at-in-elasticsearch/123408/7 "2018-03-11T11:42:56Z")

</div>

could you give me an example query for this result?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 11, 2018, 12:19pm UTC](https://discuss.elastic.co/t/search-and-get-distenic-result-base-on-create-at-in-elasticsearch/123408/8 "2018-03-11T12:19:52Z")

</div>

Have a look at the documentation, give a try and share a full script if you don't succeed. Then we can help from here.

---

<div class="post-metadata">

**Author:** ![mohammad\_S07](https://avatars.discourse-cdn.com/v4/letter/m/cdc98d/32.png) [@mohammad\_S07](https://discuss.elastic.co/u/mohammad_S07)\
**Post date:** [March 11, 2018, 2:04pm UTC](https://discuss.elastic.co/t/search-and-get-distenic-result-base-on-create-at-in-elasticsearch/123408/9 "2018-03-11T14:04:15Z")

</div>

Thanks a lot  
It was a great help  
👌👍👍👍👍

---

<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:** [April 8, 2018, 2:04pm UTC](https://discuss.elastic.co/t/search-and-get-distenic-result-base-on-create-at-in-elasticsearch/123408/10 "2018-04-08T14:04:16Z")

</div>

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