In the reference guide, the list of search components that are enabled by default is missing the facet_module and terms components. The terms component is instead listed under "other useful components", while the FacetModule is never listed anywhere in the documentation, despite it being neccessary for the JSON Facet API to work.
This is also how I stumbled upon this, I spent hours trying to figure out why JSON-based faceting was not working with my setup, after taking a glance at the SearchHandler source code based on a hunch, it became clear that my custom list of search components (created based on the list in the reference guide) was to blame.
A patch for the documentation gap is attached, but I think there are some other issues with the naming/documentation around the two faceting APIs that may be worth discussing:
- The names facet_module / FacetModule are very misleading, since the documentation is always talking about the "JSON Facet API", but the term "JSON" does not appear in the name of the component nor does the component have any documentation attached that mentions this
- Why is the FacetModule class located in the search.facet package while every single other search component included in the core is located in the handler.component package?