code: public SearchQuery addFacet(String facetName, SearchFacet facet) {
          if (facet == null || facetName == null) {
              throw new NullPointerException("Facet name and description must not be null");
          }
          this.facets.put(facetName,  facet);
          return this;
      }
docs: Adds one {@link SearchFacet} to the query.
  
  This is an additive operation (the given facets are added to any facet previously requested),
  but if an existing facet has the same name it will be replaced.
  
  This drives the inclusion of the {@link SearchQueryResult#facets()} facets} in the {@link SearchQueryResult}.
  
  Note that to be faceted, a field's value must be stored in the FTS index.
  
  @param facetName the name of the facet to add (or replace if one already exists with same name).
  @param facet the facet to add.