Если ваши документы не слишком большие, просто сначала прочитайте их в память, а затем укажите результирующее значение в виде строки при добавлении нового поля.Если документы большие, разбейте их на управляемые фрагменты и выполните описанную выше операцию для каждого фрагмента.Убедитесь, что вы используете одно и то же имя поля для каждого чанка, чтобы Lucene выполнял поиск по всем значениям.
Пример:
IndexWriter writer = ...
String id = ...
String[] lines = ...
Document doc = new Document();
doc.add(new Field("id", id, Store.YES, Index.NOT_ANALYZED, TermVector.NO );
for (String line: lines) {
doc.add(new Field("text", line, Store.YES, Index.ANALYZED, TermVector.WITH_POSITIONS);
}
writer.addDocument(doc);
Lucene автоматически объединит значения, указанные при каждом добавлении,то же имя поля, чтобы он мог выполнять поиск по объединенному набору.