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

Sanne Grinovero (JIRA) noreply at atlassian.com
Fri Jun 10 09:21:27 EDT 2011


    [ http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-776?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=42564#action_42564 ] 

Sanne Grinovero commented on HSEARCH-776:
-----------------------------------------

great Adrian, if you can provide a pull request for a testcase and a fix the would be even better :)

> 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
>            Priority: Critical
>
> 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.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list