lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Hostetter <hossman_luc...@fucit.org>
Subject RE: SpanNearQuery - inOrder parameter
Date Tue, 10 May 2011 23:32:27 GMT


: I attach a junit test which shows strange behaviour of the inOrder
: parameter on the SpanNearQuery constructor, using Lucene 2.9.4.
: 
: My understanding of this parameter is that true forces the order and
: false doesn't care about the order. 
: 
: Using true always works. However using false works fine when the terms
: in the query are distinct, but if they are equivalent, e.g. searching
: for "john john", I do not get the expected results. The workaround seems
: to be to always use true for queries with repeated terms.

I don't think the situation of "overlapping spans" has changed much since 
this thread...

http://search.lucidimagination.com/search/document/ee23395e5a93c525/non_overlapping_span_queries#868b3a3ec6431afc

the crux of hte issue (as i recall) is that there is really no conecptual 
reason to why a query for "'john' near 'john', in any order, with slop of 
Z" shouldn't match a doc that contains only one instance of "john" ... the 
first SpanTermQuery says "i found a match at position X" the second 
SpanTermQuery says "i found a match at position Y" and the SpanNearQuery 
says "the differnece between X and Y is less then Z" therefore i have a 
match.  (The SpanNearQuery can't fail just because X and Y are the same -- 
they might be two distinct term instances, with differnet payloads 
perhaps, that just happen to have the same position).

However: if true==inOrder case works because the SpanNearQuery enforces 
that  "X must be less then Y" so the same term can't ever match twice.



-Hoss

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message