Hi,

In 2.4.1, Field has 2 constructors that involve a Reader:
public Field(String name,
                  Reader reader)
public Field(String name,
                  Reader reader,
                  Field.TermVector termVector)

http://lucene.apache.org/java/2_4_1/api/core/org/apache/lucene/document/Field.html#Field(java.lang.String,%20java.io.Reader,%20org.apache.lucene.document.Field.TermVector)

The Reader references a text file on the filesystem. These
constructors do the following:
"Create a tokenized and indexed field that is not stored, optionally
with storing term vectors. The Reader is read only when the Document
is added to the index, i.e. you may not close the Reader until
IndexWriter.addDocument(Document)  has been called."

Someone has made the decision that we will not be interested in
storing files read using a Reader (at least not with these
constructors).
This is rather arbitrary.
As someone who has massively parralelized my indexing AND sometimes
might want to also store files in the index,  having a queue of 1000
Documents with 1000 Readers to files is vastly preferable to having
1000 documents with 1000 (perhaps very large) Strings with all the
contents of the files. While this is not the best for all cases (#open
file handles, etc), this is a use case which would benefit from being
able to do this (i.e. reduced memory footprint, especially for large
files or large queues).

Suggestion: replace or add a constructor with:
public Field(String name,
             Reader reader,
             Field.Store store,
             Field.Index index,
             Field.TermVector termVector)

Constructively,

Glen Newton
 http://zzzoot.blogspot.com/
 http://lab.cisti-icist.nrc-cnrc.gc.ca/cistilabswiki/index.php/LuSql

-

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

Reply via email to