Chapter 4. Advanced Queries – Filter Queries and Faceting

This chapter starts by defining filter queries and their benefits compared to the normal search queries that we have used earlier. We will see how we can use filter queries in Solr with PHP and the Solarium library. We will then explore faceting in Solr. We will also see how PHP can be used to facet in Solr. We will explore faceting by field, faceting by query, and faceting by range. We will also look at faceting by using pivots. The topics that will be covered are as follows:

  • Filter queries and their benefits
  • Executing filter queries using PHP and Solarium
  • Creating a filter query configuration
  • Faceting
  • Faceting by field, query, and range
  • Faceting pivots

Filter queries and their benefits

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 and ranking is not done on a filter query. Another benefit of using filter queries is that they are cached at Solr level resulting in an even better performance. It is recommended to use filter queries instead of normal queries.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.15.31.141