# FilterContainer in Elasticsearch NEST 5.0

**URL:** https://discuss.elastic.co/t/filtercontainer-in-elasticsearch-nest-5-0/69689
**Category:** Elasticsearch
**Created:** [December 21, 2016, 5:09pm UTC](https://discuss.elastic.co/t/filtercontainer-in-elasticsearch-nest-5-0/69689 "2016-12-21T17:09:20Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![iluvcode](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/iluvcode/32/24929_2.png) [@iluvcode](https://discuss.elastic.co/u/iluvcode)
#### Post date: [December 21, 2016, 5:09pm UTC](https://discuss.elastic.co/t/filtercontainer-in-elasticsearch-nest-5-0/69689/1 "2016-12-21T17:09:20Z")

</div>

I am working on Elasticsearch migration from 1.7.1 to 5.0.  
I fixed most of the issues in the code after upgrading to 5.0 but I couldn't figure out how to change **_FilterContainer_** to work in new version.

Below is my code

```
 public static List< **FilterContainer** > GetPriceRangeFilters(SearchListCriteria criteria, out List< **FilterContainer** > additionalpricefilters)
        {
            var pricefilters = new List< **FilterContainer** >();
            additionalpricefilters = new List< **FilterContainer** >();
            if (criteria.SearchGlobalSettings.MinimumPriceRange != null && criteria.SearchGlobalSettings.MinimumPriceRange.Length > 0)
            {
                const string fieldName = "itemPrices.webPrice";
                pricefilters.Add((new **FilterDescriptor** <ItemSearchEntry>()).Query(a => a.Range(n => n.OnField(fieldName).GreaterOrEquals(criteria.SearchGlobalSettings.MinimumPriceRange[0].ToString()).
                    LowerOrEquals(criteria.SearchGlobalSettings.MaximumPriceRange[0].ToString()))));
                for (var i = 1; i < criteria.SearchGlobalSettings.MinimumPriceRange.Length; i++)
                {
                    additionalpricefilters.Add((new **FilterDescriptor** <ItemSearchEntry>()).Query(a => a.Range(n => n.OnField(fieldName).
                        GreaterOrEquals(criteria.SearchGlobalSettings.MinimumPriceRange[i].ToString()).LowerOrEquals(criteria.SearchGlobalSettings.MaximumPriceRange[i].ToString()))));
                }
            }
            return pricefilters;
        }
```

---

<div class="post-metadata">

### Author: ![forloop](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/forloop/32/9021_2.png) [@forloop](https://discuss.elastic.co/u/forloop)
#### Post date: [December 24, 2016, 3:23am UTC](https://discuss.elastic.co/t/filtercontainer-in-elasticsearch-nest-5-0/69689/2 "2016-12-24T03:23:30Z")

</div>

`FilterContainer` no longer exists in NEST 2.0 onwards, [because filters and queries merged in Elasticsearch into queries](https://www.elastic.co/guide/en/elasticsearch/reference/2.4/breaking_20_query_dsl_changes.html#breaking_20_query_dsl_changes), with a _query_ or _filter_ context.

Where you would have used `FilterContainer`, use `QueryContainer` and then when adding to the search, pass the collection of `FilterContainer` into a `bool` query `filter` clause.

---

<div class="post-metadata">

### Author: ![iluvcode](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/iluvcode/32/24929_2.png) [@iluvcode](https://discuss.elastic.co/u/iluvcode)
#### Post date: [December 28, 2016, 4:25pm UTC](https://discuss.elastic.co/t/filtercontainer-in-elasticsearch-nest-5-0/69689/3 "2016-12-28T16:25:40Z")

</div>

I was able to convert filter containers to Query containers. Still working on indexing issues. Thanks for your help.

---

<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, 2017, 4:26pm UTC](https://discuss.elastic.co/t/filtercontainer-in-elasticsearch-nest-5-0/69689/4 "2017-01-25T16:26:15Z")

</div>

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