How to declare attributes for faceting with the API
On this page
Algolia lets you create categories based on specific attributes so users can filter search results by those categories. For example, if you have an index of books, you could categorize them by author and genre. This allows users to filter search results by their favorite author or discover new genres.
To enable this categorization, first declare the attributes
1 2 3 4 5 6 $index->setSettings([ 'attributesForFaceting' => [ "category", "author" ] ]);
Sometimes, you may have many facet values. For instance, if you have a book index, you may also have a lot of different authors. The engine can’t return more than 1,000 values per facet, so if you have more than that, you may want to let your users search for them. Do this by using the
1 2 3 4 5 6 $index->setSettings([ 'attributesForFaceting' => [ "category", "searchable(author)" ] ]);
If you only need the filtering feature, use
filterOnly to reduce the index size and improve search speed. For example, you could automatically filter what genre the users can search based on the section of your website they’re on(without displaying genre as a clickable filter).
1 2 3 4 5 6 $index->setSettings([ 'attributesForFaceting' => [ "filterOnly(category)", "author" ] ]);
Don’t include colons (
:) in attribute names that you want to use for faceting because the
filters syntax relies on that character as a delimiter.