Summary
-------
This cube implements facets using postgresql text search vectors.

What does this cube offer ?
---------------------------

This cube defines a new CubicWeb AppObject registry: `tsfacets`.
The base class is `cubicweb_tsfacets.views.TSFacets`; it provides
three methods allowing to recover information to use facets in
a CubicWeb application:

* `get_facets_values_with_count`, which recovers all available facets
  with how many target entities it filters for each value;
* `get_target_entities_count`, which counts target entities taking into
  account the selected facets and possibly a RQL request to restrict
  results;
* `get_target_entities_rset`, which builds a CubicWeb ResultSet taking
  into account the selected facets and possibly a RQL request to restrict
  results.

How to use it ?
---------------

For each group of facets, you have to define a child class of
`cubicweb_tsfacets.views.TSFacets`. Then, you have to complete
the following attributes:

* `key_names_to_rql_definition`: a dictionary linking each facet key
  to a RQL query returning a list of tuples:
  (entity eid to retrieve if selecting this facet, value of the facet);
* `text_search_indexation`: a RQL request returning a list of tuples:
  (target entity eid, text to index for full text search). This
  attribute is optional, and is only used if you want to add
  text search to your result list. Note: this feature will be added in
  an upcoming version;
* `target_etypes`: which entity types are targeted by your facet search;
* `table_name`: the name of the specific postgresql table.
