termQuery vs. termFilter
https://discuss.elastic.co/t/termquery-vs-termfilter/4839
Which query should I prefer? This filter query:
srb.setQuery(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), FilterBuilders.termFilter("someField", "someValue")));
or this termQuery:
srb.setQuery(QueryBuilders.termQuery("someField", "someValue"));
Use a term query if the terms you are looking for should affect the _score (relevance). If it should just exclude all docs except for those that match, use a term filter.
https://www.elastic.co/guide/en/elasticsearch/guide/current/_queries_and_filters.html
Historically, queries and filters were separate components in Elasticsearch. Starting in Elasticsearch 2.0, filters were technically eliminated, and all queries gained the ability to become non-scoring.
However, for clarity and simplicity, we will use the term "filter" to mean a query which is used in a non-scoring, filtering context. You can think of the terms "filter", "filtering query" and "non-scoring query" as being identical.
Similarly, if the term "query" is used in isolation without a qualifier, we are referring to a "scoring query".
Last updated