You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Sergey Kabashnyuk <ks...@gmail.com> on 2008/03/07 11:26:14 UTC

Hits.

Hi.
I have a question about retrieving information.
Lets say I have an index which contents a millions of documents with 2-3  
small fields an a 10 large fields.
Then I run a query which returns me a 1000 of hits.  But I am interested  
only  one small field, and I don't want to load other fields.

Can I do something like what?

       int id = hits.id(n);

       FieldSelector fieldSelector = new FieldSelector() {
         public FieldSelectorResult accept(String fieldName) {
           if(fieldName.equals(field))
             return FieldSelectorResult.LOAD_AND_BREAK;
           return FieldSelectorResult.NO_LOAD;
         }
       };

       Document doc = reader.document(id, fieldSelector);
       if(doc == null)
         throw new IOException("Document with id "+id+" not found");
       return doc.get(field);

n from 0 to hits.length().

Best regards,
Sergey

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Re: Hits.

Posted by Grant Ingersoll <gs...@apache.org>.
You sure can.  Or you can use the SetBasedFieldSelector that already  
exists in o.a.lucene.document.

-Grant

On Mar 7, 2008, at 5:26 AM, Sergey Kabashnyuk wrote:

> Hi.
> I have a question about retrieving information.
> Lets say I have an index which contents a millions of documents with  
> 2-3 small fields an a 10 large fields.
> Then I run a query which returns me a 1000 of hits.  But I am  
> interested only  one small field, and I don't want to load other  
> fields.
>
> Can I do something like what?
>
>      int id = hits.id(n);
>
>      FieldSelector fieldSelector = new FieldSelector() {
>        public FieldSelectorResult accept(String fieldName) {
>          if(fieldName.equals(field))
>            return FieldSelectorResult.LOAD_AND_BREAK;
>          return FieldSelectorResult.NO_LOAD;
>        }
>      };
>
>      Document doc = reader.document(id, fieldSelector);
>      if(doc == null)
>        throw new IOException("Document with id "+id+" not found");
>      return doc.get(field);
>
> n from 0 to hits.length().
>
> Best regards,
> Sergey
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>

--------------------------
Grant Ingersoll
http://www.lucenebootcamp.com
Next Training: April 7, 2008 at ApacheCon Europe in Amsterdam

Lucene Helpful Hints:
http://wiki.apache.org/lucene-java/BasicsOfPerformance
http://wiki.apache.org/lucene-java/LuceneFAQ






---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org