See below

On 5/14/07, David Leangen <[EMAIL PROTECTED]> wrote:


Hello!

I am new to Lucene, so forgive me if my question is basic. I did try
googling for an answer...


For an ajax autocomplete widget, I am querying using Lucene. I only want
to return, for example, the first 20 hits of anything that Lucene finds
in whatever order Lucene gives to me.

Two questions:

- How can I limit the number of hits? I don't know in
   advance what the data will be, so it's not feasible for
   me to use RangeQuery.



You can use a TopDocs or a HitCollector object which allows you
to process each object as it's hit. But I doubt you need to do this. Under
the covers, a Hits object actually stops at about 100 documents and
re-executes the query to fetch the next 100 etc. So, I really doubt you'll
have any noticeable difference in either performance or resource
usage by getting fancy.

One of the design goals of the Hits object was exactly to incur the least
expense while getting the top 100 docs....


- Will this solve the problem I am getting with maxClauseCount?

   org.apache.lucene.search.BooleanQuery$TooManyClauses
   maxClauseCount is set to 1024



No.  I expect you're using a wildcard, and wildcard handling is
complicated. Search the mail archive at
http://www.gossamer-threads.com/lists/lucene/java-user/
for TooManyClauses and you'll find a wealth of information about
why/how this happens and what to do to avoid it. Also, see

http://wiki.apache.org/lucene-java/LuceneFAQ

where this is one of th questions....

Best
Erick

Thank you!
David




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


Reply via email to