# Script filter field value is in array

**URL:** <https://discuss.elastic.co/t/script-filter-field-value-is-in-array/161572>\
**Category:** Elasticsearch\
**Created:** [December 19, 2018, 5:46pm UTC](https://discuss.elastic.co/t/script-filter-field-value-is-in-array/161572 "2018-12-19T17:46:39Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![CrinaGrigore](https://avatars.discourse-cdn.com/v4/letter/c/bbce88/32.png) [@CrinaGrigore](https://discuss.elastic.co/u/CrinaGrigore)\
**Post date:** [December 19, 2018, 5:46pm UTC](https://discuss.elastic.co/t/script-filter-field-value-is-in-array/161572/1 "2018-12-19T17:46:39Z")

</div>

Here is a part of my query:

```auto
 must_not: {
    script: {
      script: {
        source: "doc['type.keyword'].value=='CHANNEL' ? doc['id'].value == 0 : ['1','3','7'].contains(doc['id'].value"),
        lang: 'painless'
      }
    }
  }

```

How can I check if `doc['id'].value` has a value from an array?

---

<div class="post-metadata">

**Author:** ![rjernst](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rjernst/32/6363_2.png) [@rjernst](https://discuss.elastic.co/u/rjernst)\
**Post date:** [December 20, 2018, 8:12pm UTC](https://discuss.elastic.co/t/script-filter-field-value-is-in-array/161572/2 "2018-12-20T20:12:37Z")

</div>

What type is your `id` field (in your mappings)?

---

<div class="post-metadata">

**Author:** ![CrinaGrigore](https://avatars.discourse-cdn.com/v4/letter/c/bbce88/32.png) [@CrinaGrigore](https://discuss.elastic.co/u/CrinaGrigore)\
**Post date:** [December 28, 2018, 11:29pm UTC](https://discuss.elastic.co/t/script-filter-field-value-is-in-array/161572/3 "2018-12-28T23:29:00Z")

</div>

integer type

---

<div class="post-metadata">

**Author:** ![CrinaGrigore](https://avatars.discourse-cdn.com/v4/letter/c/bbce88/32.png) [@CrinaGrigore](https://discuss.elastic.co/u/CrinaGrigore)\
**Post date:** [December 28, 2018, 11:31pm UTC](https://discuss.elastic.co/t/script-filter-field-value-is-in-array/161572/4 "2018-12-28T23:31:23Z")

</div>

I've tried different ways:

```auto
    source:"doc['type.keyword'].value=='CHANNEL' ? doc['id'].value == 0 : params.ids.values.contains(doc['id'].value)",
     params: {
       ids: [5,6]
    } - NO ERROR. JUST NOT FILTERING

    source:"doc['type.keyword'].value=='CHANNEL' ? doc['id'].value == 0 : params.ids.contains(doc['id'].value)",
     params: {
       ids: ['5','6']
    } - NO ERROR. JUST NOT FILTERING

    source:"doc['type.keyword'].value=='CHANNEL' ? doc['id'].value == 0 : for (el in params.ids) {doc['id'].value==el}",
     params: {
       ids: ['5','6']
    } . ERROR

```

---

<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:** [January 25, 2019, 11:31pm UTC](https://discuss.elastic.co/t/script-filter-field-value-is-in-array/161572/5 "2019-01-25T23:31:30Z")

</div>

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