Faceting by field counts the number of occurrences of a term in a specific field. Let us create facets on author and genre. There are separate string fields in our Solr index for indexing facet-related strings without any tokenization. In this case, the fields are author_s
and genre_s
.
Note
Fields ending with _s
are dynamic fields defined in our Solr schema.xml
. Dynamic fields defined as *_s
match any field that ends in _s
and all attributes in the field definition are applied on this field.
To create a facet on our author_s
field, we need to get the facetset
component from the Solarium query, create a facet field
key and set the actual field using the facets that will be created.
$query->setQuery('cat:book'); $facetset = $query->getFacetSet(); $facetset->createFacetField('author')->setField('author_s');
Set the number of facets to get using the following code:
$facetset->setLimit(5);
Return all facets that have at least one term in them.
$facetset->setMinCount...