Yes, most of Lucene's Query equals() and hashCode() methods consider
clause order important (including BooleanQuery).  It's like
List.equals() vs Set.equals()

I'm not sure if it's worth fixing them all or not... implementing set
equality with an underlying list can certainly be more expensive (some
kind of HashSet would be more efficient for that).

Users can also get this behavior by normalizing or sorting clauses.

-Yonik
http://incubator.apache.org/solr Solr, the open-source Lucene search server


On 5/6/06, Michael Chan <[EMAIL PROTECTED]> wrote:
Hi,

I'm using the latest version. Try the following:

                                SpanQuery[] clauses1 = {new SpanTermQuery(new 
Term("contents",
"test1")), new SpanTermQuery(new Term("contents", "test2"))};
                                SpanNearQuery nearQ1 = new 
SpanNearQuery(clauses1, 3, false);

                                SpanQuery[] clauses2 = {new SpanTermQuery(new 
Term("contents",
"test2")), new SpanTermQuery(new Term("contents", "test1"))};
                                SpanNearQuery nearQ2 = new 
SpanNearQuery(clauses2, 3, false);

                                System.out.println(nearQ1.equals(nearQ2));

It works if clauses2 = {new SpanTermQuery(new Term("contents",
"test1")), new SpanTermQuery(new Term("contents", "test2"))}. But,
since order doesn't matter here, the two queries should be equal,
right?

Cheers,

Michael


On 5/6/06, Erik Hatcher <[EMAIL PROTECTED]> wrote:
> What version of Lucene are you using?   It should work fine with
> 1.9.  If not, could you supply a test case demonstrating this issue?
>
> Thanks,
>         Erik
>
>
>
> On May 5, 2006, at 10:13 AM, Michael Chan wrote:
>
> > Hi,
> >
> > It seems to me SpanNearQuery.equals()/.hash() are not overriden
> > because I've tried testing two logically equivalent queries but
> > .equals() returns false. Could anyone provide an implementation?
> >
> > Cheers,
> >
> > Michael
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to