# Pass each matched record value to filter in Elasticsearch

**URL:** <https://discuss.elastic.co/t/pass-each-matched-record-value-to-filter-in-elasticsearch/298541>\
**Category:** Elasticsearch\
**Created:** [March 1, 2022, 5:05pm UTC](https://discuss.elastic.co/t/pass-each-matched-record-value-to-filter-in-elasticsearch/298541 "2022-03-01T17:05:46Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ZulQ](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/zulq/32/101104_2.png) [@ZulQ](https://discuss.elastic.co/u/ZulQ)\
**Post date:** [March 1, 2022, 5:05pm UTC](https://discuss.elastic.co/t/pass-each-matched-record-value-to-filter-in-elasticsearch/298541/1 "2022-03-01T17:05:46Z")

</div>

For `geo_distance` query I'm using a constant value for distance. I need to make it dynamic. So I want to pass the above matched record **radius** value to **distance**.

Here's the code:

```
let searchRadius = '12KM'
        query: {
            bool: {
                must: {
                    match: {
                        companyName: {
                            query: req.text
                        }
                    }
                },
                filter: {
                    geo_distance: {
                        distance: searchRadius,//here I want to pass doc['radius']
                        location: {
                            lat: parseFloat(req.lat),
                            lon: parseFloat(req.lon)
                        }
                    }
                },
            }
        }

```

For each record, I have a different **radius** value. I want to pass `doc['radius']` instead of constant `searchRadius` value.

I can hit two queries then iterate the values but it's not optimal. Can anyone suggest how can I pass each record value to geo\_distance filter?

---

<div class="post-metadata">

**Author:** ![ZulQ](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/zulq/32/101104_2.png) [@ZulQ](https://discuss.elastic.co/u/ZulQ)\
**Post date:** [March 2, 2022, 8:01am UTC](https://discuss.elastic.co/t/pass-each-matched-record-value-to-filter-in-elasticsearch/298541/2 "2022-03-02T08:01:20Z")

</div>

any suggestions plz...

---

<div class="post-metadata">

**Author:** ![ZulQ](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/zulq/32/101104_2.png) [@ZulQ](https://discuss.elastic.co/u/ZulQ)\
**Post date:** [March 2, 2022, 1:39pm UTC](https://discuss.elastic.co/t/pass-each-matched-record-value-to-filter-in-elasticsearch/298541/3 "2022-03-02T13:39:37Z")

</div>

I resolved like this

```auto
{
            query: {
              bool: {
                must: [
                  {
                    match: {
                      companyName: {
                        query: req.text
                      }
                    }
                  },
                  {
                    script: {
                      script: {
                        params: {
                          lat: parseFloat(req.lat),
                          lon: parseFloat(req.lon)
                        },
                        source: "doc['location'].arcDistance(params.lat, params.lon) / 1000 < doc['searchRadius'].value",
                        lang: "painless"
                      }
                    }
                  }
                ]
              }
            },
            sort: [
                {
                    _geo_distance: {
                        location: {
                            lat: parseFloat(req.lat),
                            lon: parseFloat(req.lon)
                        },
                        order: "asc",
                        unit:"km"
                    }
                }
            ],

```

---

<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:** [March 30, 2022, 1:39pm UTC](https://discuss.elastic.co/t/pass-each-matched-record-value-to-filter-in-elasticsearch/298541/4 "2022-03-30T13:39:59Z")

</div>

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