James, I haven't used RangeQueries, but what you describe does sound confusing to me. I'll enter it as a bug, just so this information doesn't get lost, because I am not certain that this is really a bug, even though it sounds like one to me.
Thanks, Otis --- James Ricci <[EMAIL PROTECTED]> wrote: > I'm replying to my own message because I think I now understand the > problem, > and part of it is, in my opinion, a bad implementation of > RangedQuery. > > When you create a ranged query and omit the lower term, my > expectation would > be that I would find everything less than the upper term. Now if I > pass > false for the inclusive term, then I would expect that I would find > all > terms less than the upper term excluding the upper term itself. > > What is happening in the case of lower_term=null, upper_term=x, > inclusive=false is that empty strings are being excluded because > inclusive > is set false, and the implementation of RangedQuery creates a default > lower > term of Term(fieldName, ""). Since it's not inclusive, it excludes > "". This > isn't what I intended, and I don't think it's what most people would > imagine > RangedQuery would do in the case I've mentioned. > > I equate lower=null, upper=x, inclusive=false to Field < x. > lower=null, > upper=x, inclusive=true would be Field <= x. In both cases, the only > difference should be whether or not Field = x is true for the query. > > I'm still quite new to Lucene, so maybe I'm wrong about all this > because I > just don't understand it well enough. If so, could someone tell me > where > I've gone astray? > > Thanks much, > > James > > PS: The rest of the problems I had below I was able to fix by > changing how > the fields were tokenized and indexed. > > > -----Original Message----- > > From: James Ricci > > Sent: Thursday, June 06, 2002 11:16 AM > > To: '[EMAIL PROTECTED]' > > Subject: Question about RangeQuery and strings... > > > > Hi all, > > > > I've been having some problems using RangeQuery. I have a simple > Query > > which is essentially "document.field < AB". Field values are: > > > > "" // Empty string > > "A SPACE" > > "A123456" > > "ABC" > > > > Now I expected to find the first three of the four values (and I do > with > > another commercial search engine product I've worked with). With > Lucene I > > get nothing. Part of the problem I think is that there are some > issues > > with case here. Changing my query to "document.field < ab" returns: > > > > "A123456" > > > > Now I would have expected "A SPACE" to get returned, and I was > really > > surprised that "" wasn't returned. I'm guessing that "" wasn't > returned > > because no term in the field passed the query criteria, and empty > string > > is not considered a term. > > > > How should I go about getting what I expect? What is going on here? > > > > Thanks much, > > > > James > > > > > > > > > > -- > To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
