[hibernate-dev] [HSearch] Facet drilldown
Emmanuel Bernard
emmanuel at hibernate.org
Mon Mar 14 11:59:13 EDT 2011
On 14 mars 2011, at 16:33, Hardy Ferentschik wrote:
>> - move Facet methods hosted on FTQuery to a FacetManager interface and do ftQuery.getFacetManager().enableFacet("cdscds");
> no sure about this one. What other benefits does this approach have except the reuse for the JPA query?
My concerns are:
- it's easier for someone to know what operations are available wrt faceting if there is an interface to host them all and have a nice JavaDoc + code example
- it seems this feature is still in flux so adding new methods related to faceting is a real possibility in the future
- with the most simple approach, we already have 3 methods related to faceting. The the alternative one, we are at 4 methods.
In a nutshell, the current approach is less future proof in an area that will probably evolve / improve.
>
>> - make FacetRequest / FacetResults interfaces?
> After discussion this morning I actually got rid of FacetResult, since in the end one is only interested in
> the actual Facets.
What are you returning then?
Map<String,List<Facet>> getFacetResults?
I'm not a huge fan:
- I find it more cryptic than
- one cannot really rely on equals / hashCode if needed (not sure that's necessary though)
- you have to be sure that you will never ever need to add addition contextual information on the concept of results
- the toString is nicer :)
>
>> - Facet should implement equals / hashCode or else we cannot remember the facet selected
> +1
>
>> - //TODO should the index be included in object Facet? Not sure but worth thinking about => probably not if Facet objects change indexes from one query to the other
> Not sure what you mean.
I was thinking of adding getIndex on Facet as it is likely to be the link between a UI fwk and Hibernate Search but adding this info would cause more problems than it solves.
>
>> - should we rename Facet to FacetElement? We seem to talk about Facets as the global concept whereas Facet the object represent one of the results of the Facet.
> For me the global concept is "Faceting" and a Facet is indeed a single result.
> But I see where you are coming from. We call it FacetRequest and enableFacet()
> Maybe we should rename these though. FacetingRequest? It's just so much
> harder to pronounce ;-)
I'd go for faceting on the upper objects. That'd be clearer to be.
Faceting is pronounced Facet - ing :)
More information about the hibernate-dev
mailing list