# Filter on last digit of long number

**URL:** <https://discuss.elastic.co/t/filter-on-last-digit-of-long-number/165739>\
**Category:** Elasticsearch\
**Created:** [January 25, 2019, 9:52am UTC](https://discuss.elastic.co/t/filter-on-last-digit-of-long-number/165739 "2019-01-25T09:52:51Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![JimboJones](https://avatars.discourse-cdn.com/v4/letter/j/e5b9ba/32.png) [@JimboJones](https://discuss.elastic.co/u/JimboJones)\
**Post date:** [January 25, 2019, 9:52am UTC](https://discuss.elastic.co/t/filter-on-last-digit-of-long-number/165739/1 "2019-01-25T09:52:51Z")

</div>

I'm trying to filter documents on the last digit of a long number field called file.mode to find world writable files.

I would like to do something like this regex query file.mode:/0..[2367]/  
So filter documents where the last digit of file.mode is either 2,3,6 or 7

Any ideas?

---

<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:** [January 27, 2019, 2:41pm UTC](https://discuss.elastic.co/t/filter-on-last-digit-of-long-number/165739/2 "2019-01-27T14:41:04Z")

</div>

The last digit of a long is returned by the modulo 10. You can make use of that fact in a [script query](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-script-query.html):

```auto
GET my_index/_search
{
  "query": {
    "script": {
      "script": {
        "source": "long modulo = doc['file.mode'].value % 10; for (value in params.values) { if (value == modulo) return true; } return false",
        "params": {
          "values": [
            2,
            3,
            6,
            7
          ]
        }
      }
    }
  }
}

```

Script queries are not always going to be very performant. If you plan to use this query often, you are better off with indexing the modulo 10 as a separate field in your documents. That will allow you to query that field without the need for any scripting.

---

<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:** [February 24, 2019, 2:41pm UTC](https://discuss.elastic.co/t/filter-on-last-digit-of-long-number/165739/3 "2019-02-24T14:41:09Z")

</div>

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