# Getting a query into filter context

**URL:** https://discuss.elastic.co/t/getting-a-query-into-filter-context/33994
**Category:** Elasticsearch
**Created:** [November 6, 2015, 1:56pm UTC](https://discuss.elastic.co/t/getting-a-query-into-filter-context/33994 "2015-11-06T13:56:48Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Brian\_Hudson](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/brian_hudson/32/1306_2.png) [@Brian\_Hudson](https://discuss.elastic.co/u/Brian_Hudson)
#### Post date: [November 6, 2015, 1:56pm UTC](https://discuss.elastic.co/t/getting-a-query-into-filter-context/33994/1 "2015-11-06T13:56:48Z")

</div>

If I have a simple query like:

```
termQuery("name", "Brian")

```

What is the suggested method of getting that query into filter context in Elasticsearch 2.0?

Wrapping it in a boolQuery?

```
boolQuery().filter(termQuery("name", "Brian"))
```

---

<div class="post-metadata">

### Author: ![polyfractal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/polyfractal/32/48162_2.png) [@polyfractal](https://discuss.elastic.co/u/polyfractal)
#### Post date: [November 6, 2015, 3:06pm UTC](https://discuss.elastic.co/t/getting-a-query-into-filter-context/33994/2 "2015-11-06T15:06:15Z")

</div>

Yep!

(Assuming you want to run it as a filter e.g. no scoring)

---

<div class="post-metadata">

### Author: ![Brian\_Hudson](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/brian_hudson/32/1306_2.png) [@Brian\_Hudson](https://discuss.elastic.co/u/Brian_Hudson)
#### Post date: [November 6, 2015, 3:28pm UTC](https://discuss.elastic.co/t/getting-a-query-into-filter-context/33994/3 "2015-11-06T15:28:09Z")

</div>

Great thanks.

Does a top level `boolQuery().filter(someBigCompoundQuery)` put all of the subqueries into filter context or do I need to put the sub-queries into filter context as well?

---

<div class="post-metadata">

### Author: ![polyfractal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/polyfractal/32/48162_2.png) [@polyfractal](https://discuss.elastic.co/u/polyfractal)
#### Post date: [November 6, 2015, 3:52pm UTC](https://discuss.elastic.co/t/getting-a-query-into-filter-context/33994/4 "2015-11-06T15:52:15Z")

</div>

Hmm, I'm not sure I understand?

If you add queries to the `must` / `must_not` / `should` clauses of a bool, they will be executed as queries. If you add them to the `filter`, they turn into a filtering, non-scoring context.

---

<div class="post-metadata">

### Author: ![Brian\_Hudson](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/brian_hudson/32/1306_2.png) [@Brian\_Hudson](https://discuss.elastic.co/u/Brian_Hudson)
#### Post date: [November 10, 2015, 7:56pm UTC](https://discuss.elastic.co/t/getting-a-query-into-filter-context/33994/5 "2015-11-10T19:56:57Z")

</div>

If I have something like

```
boolQuery().filter(boolQuery().must(termQuery("fname", "Brian"))
                              .must(termQuery("lname", "Hudson"));

```

Are the term queries now in filter context and thus individually eligible for caching?

---

<div class="post-metadata">

### Author: ![polyfractal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/polyfractal/32/48162_2.png) [@polyfractal](https://discuss.elastic.co/u/polyfractal)
#### Post date: [November 11, 2015, 2:57pm UTC](https://discuss.elastic.co/t/getting-a-query-into-filter-context/33994/6 "2015-11-11T14:57:53Z")

</div>

Ah, I see. Yes, you are correct. When you place those queries in a filter context, they will execute as a filter with no scoring, caching, etc.

---

<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: [July 5, 2017, 11:39pm UTC](https://discuss.elastic.co/t/getting-a-query-into-filter-context/33994/7 "2017-07-05T23:39:11Z")

</div>


