A HitCollector returns docs by the order they are found (in the index, not 
by relevance). Use a search method that returns TopDocs if you want the 
first n documents without executing the query more than once (Hits uses this 
internally).

-Yonik
Now hiring -- http://tinyurl.com/7m67g


On 9/8/05, Richard Krenek <[EMAIL PROTECTED]> wrote:
> 
> This answers a lot of questions and observations. We looked in the source
> code of the Hits object and found the getMoreDocs(int min) method which 
> does
> what you stated below.
> 
> We are assuming you meant for us to use a HitCollector instead. This 
> brings
> up a new question does the Searcher call the collect method in order that
> the docs are in the index or highest score first. We will look in LIA and 
> do
> some testing to find this answer, but if you know it, feel free to answer.
> 
> Thanks, this has helped our understanding of Lucene a lot.
> 
> On 9/8/05, Yonik Seeley <[EMAIL PROTECTED]> wrote:
> >
> > The Hits class collects the document ids from the query in batches. If 
> you
> > iterate beyond what was collected, the query is re-executed to collect
> > more
> > ids.
> >
> > You can use the expert level search methods on IndexSearcher if this 
> isn't
> > what you want.
> >
> > -Yonik
> >
> > On 9/8/05, Richard Krenek <[EMAIL PROTECTED]> wrote:
> > >
> > > I understand that for the query, but why does it matter once you have
> > the
> > > Hits object? That is the part I'm baffled on. The query with the
> > wildcard
> > > in
> > > the front takes a lot longer, but we expected that.
> > >
> > > On 9/8/05, Jeremy Meyer <[EMAIL PROTECTED]> wrote:
> > > >
> > > > The issue isn't with multiple wildcards exactly. Specifically, the
> > > problem
> > > > is if the query starts with a wildcard. In the case where it starts
> > with
> > > a
> > > > wildcard, lucene has no option but to linearly go over every term in
> > the
> > > > index to see if it matches your pattern. It must visit every singe
> > term
> > > in
> > > > the index. If it doesn't start with a wildcard, lucene can skip to 
> the
> > > > relevant part of the index and only visit the relevant terms. For 
> this
> > > > reason, many people that use Lucene choose to disable having 
> wildcard
> > at
> > > the
> > > > start of a search term. This is discussed in the "Lucene in Action"
> > > book.
> > > >
> > > > ~Jack~
> > > >
> > > > >>Hello All,
> > > > >>I am getting some weird time results when retrieving documents 
> back
> > > from
> > > > a hits object. I am just timing this bit of code:
> > > > >>Hits hits = searcher.search(query);
> > > > >>long startTime = System.currentTimeMillis(); for (int i = 0; i <
> > > > hits.length(); i++) { Document doc = hits.doc(i); String field =
> > doc.get
> > > (defaultField);
> > > > } System.out.println("Cycle Time: "+(System.currentTimeMillis
> > > > ()-startTime));
> > > > >>
> > > > >>It seems when I have a wilcard query like *abcd* vs weqrew*, the
> > > *abcd*
> > > > query will always take longer to retrieve the documents even if they
> > are
> > > of
> > > > simular result sizes. We are talking a big difference 1 second vs 
> 16.
> > It
> > > is
> > > > consistent no matter >>what order I run the queries in, terms with
> > > multiple
> > > > wildcards always take longer to retrieve the documents. I am not
> > > counting
> > > > the time of the query.
> > > > >>
> > > > >>The index is 2.18 GB, 9 fields per document, 10,694,190 documents,
> > > > >>25,538,793 terms and has been optimized.
> > > > >>
> > > > >>I am not sure if this is a real or just a percieved issue. We 
> cannot
> > > > figure out why the type of query would affect the speed it takes to
> > > retrieve
> > > > each document. We have run this on both Windows XP and Linux. With 
> the
> > > same
> > > > results. Also to >>note we did watch GC and this did not have any
> > > > significant impact that we could se.
> > > > >>
> > > > >>We are trying to figure out what could cause this and how we can
> > work
> > > > around it.
> > > > >>
> > > > >>
> > > > >>Thanks,
> > > > >>Richard
> > > >
> > >
> > >
> >
> >
> > --
> > -Yonik
> > Now hiring -- http://tinyurl.com/7m67g
> >
> >
> 
>

Reply via email to