lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From DM Smith <>
Subject Searcher javadoc problem
Date Sat, 03 Oct 2009 22:04:20 GMT
I'm working on migrating my code to 2.9. And I'm trying to figure out  
what to do. Along the way I found a circular argument in the JavaDoc  
for Searcher. BTW, this is not a user question.

My current code calls:
                 Hits hits =;

The JavaDoc for it says:
   /** Returns the documents matching <code>query</code>.
    * @throws BooleanQuery.TooManyClauses
    * @deprecated Hits will be removed in Lucene 3.0. Use
    * {@link #search(Query, Filter, int)} instead.
   public final Hits search(Query query) throws IOException {
     return search(query, (Filter)null);

However, search(Query, Filter, int) is not quite appropriate as I need  
all hits. I guess I could pass null for filter and MAX_INT.

So, I found search(Query, Collector), which seems most appropriate.  
(Not sure though, but I'll figure it out.) However, the JavaDoc for it  
   /** Lower-level search API.
   * <p>{@link Collector#collect(int)} is called for every matching  
   * <p>Applications should only use this if they need <i>all</i> of the
   * matching documents.  The high-level search API ({@link
   * Searcher#search(Query)}) is usually more efficient, as it skips
   * non-high-scoring hits.
   * <p>Note: The <code>score</code> passed to this method is a raw  
   * In other words, the score will not necessarily be a float whose  
value is
   * between 0 and 1.
   * @throws BooleanQuery.TooManyClauses
  public void search(Query query, Collector results)
    throws IOException {
    search(createWeight(query), null, results);

But is deprecated.

So what is the appropriate documentation for getting all "hits"? Seems  
to say, "Don't do that"

-- DM

View raw message