[hibernate-issues] [Hibernate-JIRA] Updated: (HSEARCH-776) maxFacetCount returns incorrect results when ordering a faceted query

Sanne Grinovero (JIRA) noreply at atlassian.com
Fri Aug 12 07:39:03 EDT 2011


     [ http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-776?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sanne Grinovero updated HSEARCH-776:
------------------------------------

    Fix Version/s: 3.4.1

> maxFacetCount returns incorrect results when ordering a faceted query
> ---------------------------------------------------------------------
>
>                 Key: HSEARCH-776
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-776
>             Project: Hibernate Search
>          Issue Type: Bug
>          Components: query
>    Affects Versions: 3.4.0.Final
>         Environment: hibernate 3.6.4, hibernate search 3.4
>            Reporter: Adrian Meredith
>            Assignee: Hardy Ferentschik
>            Priority: Critical
>             Fix For: 3.4.1, 4.0.0.Alpha1
>
>         Attachments: FacetCollector.java
>
>
> When putting a restriction on facets such as
> {code} 
> FacetingRequest fr = qb.facet().name("name").onField("someField").discrete().orderedBy(FacetSortOrder.COUNT_DESC).maxFacetCount(10).includeZeroCounts(false).createFacetingRequest();
> {code} 
> I would expect the facets with the top 10 results to be returned which appears to be true but it seems some are randomly missing (like the 10 are somehow spread across all results as opposed to the top ten).  Removing the max restriction and only returning the first ten entries shows the correct results.
> for example 
> {code} 
> QueryBuilder qb = ftEm.getSearchFactory().buildQueryBuilder().forEntity(WebResult.class).get();
> FacetManager fm = query.getFacetManager()
> FacetingRequest fr = qb.facet().name("name").onField("someField.id").discrete().orderedBy(FacetSortOrder.COUNT_DESC).includeZeroCounts(false).createFacetingRequest();
> fm.enableFaceting(fr);
> fm.getFacets("name").subList(0, endIndex);
> {code} 
> The two code examples should return the exact same thing but the don't.  The below code is my workaround but as you can imaging this could potentially take a dangerous amount of memory due to it effectively loading the entire index.
> My WebResult class has OneToOne relations to various other objects (e.g. country)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list