It sounds like you need to pad your numbers with leading zeroes, i.e.
use the same type of encoding as is required by RangeQuery's.  If you
query with 000005 instead of 5 do you get what you expect?  If all your
document id's are fixed length, then string comparison will be
isomorphic to integer comparison.

Chuck

  > -----Original Message-----
  > From: Edwin Tang [mailto:[EMAIL PROTECTED]
  > Sent: Monday, November 22, 2004 10:34 AM
  > To: Lucene Users List
  > Subject: Re: Need help with filtering
  > 
  > Hello again,
  > 
  > I've modified DateFilter to filter out document IDs as suggested.
All
  > seems to
  > be running well until I tried a specific test case. All my documents
  > have IDs
  > in the 400,000 range. If I set my lower limit to 5, nothing comes
back.
  > After
  > examining the code, I found the issue to be at the following line:
  > TermEnum enumerator = reader.terms(new Term(field, start));
  > 
  > Is there a way to retrieve a set of documents with IDs using a
Integer
  > comparison versus a String comparison? If I set "start" to 0, I get
  > everything,
  > but that's not very efficient.
  > 
  > Thanks in advance,
  > Ed
  > 
  > --- Paul Elschot <[EMAIL PROTECTED]> wrote:
  > 
  > > On Wednesday 17 November 2004 01:20, Edwin Tang wrote:
  > > > Hello,
  > > >
  > > > I have been using DateFilter to limit my search results to a
certain
  > date
  > > > range. I am now asked to replace this filter with one where my
  > search
  > > results
  > > > have document IDs greater than a given document ID. This
document ID
  > is
  > > > assigned during indexing and is a Keyword field.
  > > >
  > > > I've browsed around the FAQs and archives and see that I can
either
  > use
  > > > QueryFilter or BooleanQuery. I've tried both approaches to limit
the
  > > document
  > > > ID range, but am getting the BooleanQuery.TooManyClauses
exception
  > in both
  > > > cases. I've also tried bumping max number of clauses via
  > > setMaxClauseCount(),
  > > > but that number has gotten pretty big.
  > > >
  > > > Is there another approach to this? ...
  > >
  > > Recoding DateFilter to a DocumentIdFilter should be
straightforward.
  > >
  > > The trick is to use only one document enumerator at a time for all
  > > terms. Document enumerators take buffer space, and that is the
  > > reason why BooleanQuery has an exception for too many clauses.
  > >
  > > Regards,
  > > Paul
  > >
  > >
  > >
---------------------------------------------------------------------
  > > To unsubscribe, e-mail: [EMAIL PROTECTED]
  > > For additional commands, e-mail:
[EMAIL PROTECTED]
  > >
  > >
  > 
  > 
  > __________________________________________________
  > Do You Yahoo!?
  > Tired of spam?  Yahoo! Mail has the best spam protection around
  > http://mail.yahoo.com
  > 
  >
---------------------------------------------------------------------
  > 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