# Elasticsearch - How to find similarity between 2 arrays?

**URL:** <https://discuss.elastic.co/t/elasticsearch-how-to-find-similarity-between-2-arrays/171239>\
**Category:** Elasticsearch\
**Created:** [March 7, 2019, 6:46am UTC](https://discuss.elastic.co/t/elasticsearch-how-to-find-similarity-between-2-arrays/171239 "2019-03-07T06:46:55Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![aditisrinivas97](https://avatars.discourse-cdn.com/v4/letter/a/6a8cbe/32.png) [@aditisrinivas97](https://discuss.elastic.co/u/aditisrinivas97)\
**Post date:** [March 7, 2019, 6:46am UTC](https://discuss.elastic.co/t/elasticsearch-how-to-find-similarity-between-2-arrays/171239/1 "2019-03-07T06:46:55Z")

</div>

I have an array of integers stored in ES say : [1,2,3,4,5]  
Now my query array is [1,2,3,7,8]  
I want to be able to get a score of how similar the two arrays are.  
For example,  
Array in ES - [1,2,3,4,5]  
Query 1 - [1,2,3,7,8]  
Query 2 - [9,76,23,56,1,2]

Query 1 should have a higher score as it has more elements common to [1,2,3,4,5] as opposed to Query 2.

Thanks for the help in advance!

---

<div class="post-metadata">

**Author:** ![xavierfacq](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/xavierfacq/32/8744_2.png) [@xavierfacq](https://discuss.elastic.co/u/xavierfacq)\
**Post date:** [March 7, 2019, 1:57pm UTC](https://discuss.elastic.co/t/elasticsearch-how-to-find-similarity-between-2-arrays/171239/2 "2019-03-07T13:57:20Z")

</div>

Hi,

I would run a bool query with each number in a shoud term , I think that naturaly  
the document with the most term in common will have a better score.

With your Query 1:  
Bool query / minimun should match = 1  
[  
--\> should - term field (1),  
--\> should - term field (2),  
--\> should - term field (3),  
--\> should - term field (7),  
--\> should - term field (8)  
]

bye,  
Xavier

bye,  
Xavier

---

<div class="post-metadata">

**Author:** ![aditisrinivas97](https://avatars.discourse-cdn.com/v4/letter/a/6a8cbe/32.png) [@aditisrinivas97](https://discuss.elastic.co/u/aditisrinivas97)\
**Post date:** [March 8, 2019, 6:53am UTC](https://discuss.elastic.co/t/elasticsearch-how-to-find-similarity-between-2-arrays/171239/3 "2019-03-08T06:53:01Z")

</div>

Hey, thanks for the answer! I did try this. However, the problem is, if we had,  
[1,2,3,3,3], it would have a higher score because of the 3s, than [1,2,3,4,90] which is not right because [1,2,3,4,90] is closer to [1,2,3,4,5] than [1,2,3,3,3].

---

<div class="post-metadata">

**Author:** ![xavierfacq](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/xavierfacq/32/8744_2.png) [@xavierfacq](https://discuss.elastic.co/u/xavierfacq)\
**Post date:** [March 8, 2019, 9:08am UTC](https://discuss.elastic.co/t/elasticsearch-how-to-find-similarity-between-2-arrays/171239/4 "2019-03-08T09:08:47Z")

</div>

Ok, may be it will be faster/easier to compute a score in you code than trying to do it in ES 😉

---

<div class="post-metadata">

**Author:** ![aditisrinivas97](https://avatars.discourse-cdn.com/v4/letter/a/6a8cbe/32.png) [@aditisrinivas97](https://discuss.elastic.co/u/aditisrinivas97)\
**Post date:** [March 8, 2019, 10:46am UTC](https://discuss.elastic.co/t/elasticsearch-how-to-find-similarity-between-2-arrays/171239/5 "2019-03-08T10:46:07Z")

</div>

Right! Was just trying to see if it was possible! Thanks! 🙂

---

<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 5, 2019, 10:46am UTC](https://discuss.elastic.co/t/elasticsearch-how-to-find-similarity-between-2-arrays/171239/6 "2019-04-05T10:46:10Z")

</div>

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