# Search documents having multiple values of a field

**URL:** <https://discuss.elastic.co/t/search-documents-having-multiple-values-of-a-field/129915>\
**Category:** Elasticsearch\
**Created:** [April 28, 2018, 10:43am UTC](https://discuss.elastic.co/t/search-documents-having-multiple-values-of-a-field/129915 "2018-04-28T10:43:12Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![ram](https://avatars.discourse-cdn.com/v4/letter/r/b9bd4f/32.png) [@ram](https://discuss.elastic.co/u/ram)\
**Post date:** [April 28, 2018, 10:43am UTC](https://discuss.elastic.co/t/search-documents-having-multiple-values-of-a-field/129915/1 "2018-04-28T10:43:12Z")

</div>

Hi,

I want to search docs with multiple values of a field?

eg. let's say I have job postings. Few of the jobs have multiple locations.  
{  
id: 1,  
location: 'new york'  
},  
{  
id: 2,  
location: ['new york', 'london']  
}.  
{  
id: 3,  
location: ['new york', 'london','melbourne]  
}

Now how can I find jobs with 2 or more locations(2 & 3 in this case)?

Thanks

---

<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:** [April 28, 2018, 2:10pm UTC](https://discuss.elastic.co/t/search-documents-having-multiple-values-of-a-field/129915/2 "2018-04-28T14:10:30Z")

</div>

Best thing to do is to index also the array size in a field so you can just do a range query on it.

---

<div class="post-metadata">

**Author:** ![ram](https://avatars.discourse-cdn.com/v4/letter/r/b9bd4f/32.png) [@ram](https://discuss.elastic.co/u/ram)\
**Post date:** [April 28, 2018, 2:37pm UTC](https://discuss.elastic.co/t/search-documents-having-multiple-values-of-a-field/129915/3 "2018-04-28T14:37:52Z")

</div>

Hi David,

Thanks for you reply. I found a solution. I'm using script query with the script "doc['location'].values.size() \> 2".

---

<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:** [April 28, 2018, 4:29pm UTC](https://discuss.elastic.co/t/search-documents-having-multiple-values-of-a-field/129915/4 "2018-04-28T16:29:41Z")

</div>

I definitely not recommend that solution unless you don't care about speed.

---

<div class="post-metadata">

**Author:** ![ram](https://avatars.discourse-cdn.com/v4/letter/r/b9bd4f/32.png) [@ram](https://discuss.elastic.co/u/ram)\
**Post date:** [April 28, 2018, 4:43pm UTC](https://discuss.elastic.co/t/search-documents-having-multiple-values-of-a-field/129915/5 "2018-04-28T16:43:57Z")

</div>

In my case i don't this query often, so it should work. But to understand, do you mean, the script queries are slower?

---

<div class="post-metadata">

**Author:** ![ram](https://avatars.discourse-cdn.com/v4/letter/r/b9bd4f/32.png) [@ram](https://discuss.elastic.co/u/ram)\
**Post date:** [April 28, 2018, 4:50pm UTC](https://discuss.elastic.co/t/search-documents-having-multiple-values-of-a-field/129915/6 "2018-04-28T16:50:50Z")

</div>

and if so, it would be great if you could explain.

---

<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:** [April 28, 2018, 8:24pm UTC](https://discuss.elastic.co/t/search-documents-having-multiple-values-of-a-field/129915/7 "2018-04-28T20:24:04Z")

</div>

Yes. You have to run a script on every document matching the query.

---

<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:** [May 26, 2018, 8:24pm UTC](https://discuss.elastic.co/t/search-documents-having-multiple-values-of-a-field/129915/8 "2018-05-26T20:24:07Z")

</div>

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