# Filter returns 0 hits. Why?

**URL:** <https://discuss.elastic.co/t/filter-returns-0-hits-why/140952>\
**Category:** Elasticsearch\
**Created:** [July 20, 2018, 6:04pm UTC](https://discuss.elastic.co/t/filter-returns-0-hits-why/140952 "2018-07-20T18:04:58Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jevgenij](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jevgenij/32/33543_2.png) [@Jevgenij](https://discuss.elastic.co/u/Jevgenij)\
**Post date:** [July 20, 2018, 6:04pm UTC](https://discuss.elastic.co/t/filter-returns-0-hits-why/140952/1 "2018-07-20T18:04:58Z")

</div>

Hello!

Just trying to get familiar with Query DSL.

While having some index

```
http://localhost:9200/_search?q=status:Published

```

returns me all records with `status` field equal to `Published`.

And it's fine.

But when I try to repeat [the example from documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html#_scoring_with_literal_bool_filter_literal):

```
curl -X GET "localhost:9200/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "bool": {
      "filter": {
        "term": {
          "status": "Published"
        }
      }
    }
  }
}
'

```

it returns me 0 hits.

Can't understand why?

How can I express next URI search:

```
http://localhost:9200/_search?q=test AND status:Published

```

in Query?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [July 20, 2018, 7:12pm UTC](https://discuss.elastic.co/t/filter-returns-0-hits-why/140952/2 "2018-07-20T19:12:28Z")

</div>

Try with a `match` query or with `published` instead.

---

<div class="post-metadata">

**Author:** ![Jevgenij](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jevgenij/32/33543_2.png) [@Jevgenij](https://discuss.elastic.co/u/Jevgenij)\
**Post date:** [July 24, 2018, 9:25am UTC](https://discuss.elastic.co/t/filter-returns-0-hits-why/140952/3 "2018-07-24T09:25:48Z")

</div>

Thanks for reply!

`published` instead of `Published` works, despite its `Published` actually, so it looks a little bit strange to me.

The whole query I've succeeded to get to work looks now like this:

```
{
  "query": {
    "bool": {
      "must": {
        "query_string": {
          "query": "test"
        }
      },
      "filter": {
        "term": {
          "status": "published"
        }
      }
    }
  }
}
```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [July 24, 2018, 9:43am UTC](https://discuss.elastic.co/t/filter-returns-0-hits-why/140952/4 "2018-07-24T09:43:52Z")

</div>

> [@Jevgenij](#):
>
> so it looks a little bit strange to me.

It's because you are using a `term` query and not a `match` query on a text field which is using the default analyzer.

Your text `Published` is actually indexed in the inverted index as `published` because of the analysis process.  
The `match` query analyze the query the same way so `Published` is transformed to `published` which match `published` in the inverted index.  
The `term` query does not analyze the query. `Published` does not match `published` but `published` does.

---

<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:** [August 21, 2018, 9:43am UTC](https://discuss.elastic.co/t/filter-returns-0-hits-why/140952/5 "2018-08-21T09:43:53Z")

</div>

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