Filter queries are used to put a filter on the results from a Solr query without affecting the score. Suppose we are looking for all books that are in stock. The related query will be q=cat:book AND inStock:true
.
http://localhost:8080/solr/collection1/select/?q=cat:book%20AND%20inStock:true&fl=id,name,price,author,score,inStock&rows=50&defType=edismax
Another way to handle the same query is by using filter queries. The query will change to q=cat:book&fq=inStock:true
.
http://localhost:8080/solr/collection1/select/?q=cat:book&fl=id,name,price,author,score,inStock&rows=50&fq=inStock:true&defType=edismax
Though the results are the same, there are certain benefits of using filter queries. A filter query stores only document IDs. This makes it very fast to apply filters to include or exclude documents in a query. A normal query on the other hand has a complex scoring function causing reduced performance. Scoring or relevance calculation...