[ 
https://issues.apache.org/jira/browse/LUCENE-4461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13472280#comment-13472280
 ] 

Rodrigo Vega commented on LUCENE-4461:
--------------------------------------

In my case the final user can specify his/her default query to show once he/she 
is logged into the system. This issue came up when somebody define the same 
facet request using one as filter and the other only as a pure count request.

I did not find a clean way to fix it looking through the code, but i'm trying 
the current "ugly" solution where "counter" is the request index.

{code}
public class CustomCountFacetRequest extends CountFacetRequest {

        private int hashCode;

        public CustomCountFacetRequest(CategoryPath path, int num) {
                this(path, num, 0);
        }

        public CustomCountFacetRequest(CategoryPath path, int num, int counter) 
{
                super(path, num);
                hashCode = super.hashCode() * counter;
        }

        @Override
        public int hashCode() {
                return hashCode;
        }

        @Override
        public boolean equals(Object o) {
                if (o instanceof CustomCountFacetRequest) {
                        CustomCountFacetRequest that = 
(CustomCountFacetRequest) o;
                        return that.hashCode == this.hashCode && 
super.equals(o);
                }
                return false;
        }
}
{code}


I didn't find collateral effects on this solution yet, however i'm worried with 
your comments about breaking other parts of the code.

I'm not sure if throwing an exception is the best solution, but at least the 
response will be consistent.
                
> Multiple FacetRequest with the same path creates inconsistent results
> ---------------------------------------------------------------------
>
>                 Key: LUCENE-4461
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4461
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: modules/facet
>    Affects Versions: 3.6
>            Reporter: Rodrigo Vega
>              Labels: facet, faceted-search
>         Attachments: LuceneFacetTest.java
>
>
> Multiple FacetRequest are getting merged into one creating wrong results in 
> this case:
> FacetSearchParams facetSearchParams = new FacetSearchParams();
>               facetSearchParams.addFacetRequest(new CountFacetRequest(new 
> CategoryPath("author"), 10));
>               facetSearchParams.addFacetRequest(new CountFacetRequest(new 
> CategoryPath("author"), 10));
> Problem can be fixed by defining hashcode and equals in certain way that 
> Lucene recognize we are talking about different requests.
> Attached test case.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to