Мой индекс создается успешно. Моя проблема заключается в том, что при попытке считанного его в Евангелии от Луки, я получаю сообщение об ошибке:Создание индекса lucene
Caused by: java.io.IOException: read past EOF
Я знаю, что Lucene действительно обеспечивает возможность не хранить поле. Однако, какой был бы лучший способ сделать это?
- магазин поле, независимо от размера, и если удар будет найден для поиска, извлечения соответствующего поля из документа или
- Не храните поле и, если удар будет найден для поиска, запросить базу данных, чтобы получить соответствующую информацию?
Вот код, который используется для создания индекса:
public class CREATEiNDEX {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_43);
Directory index = FSDirectory.open(new File("C:/toturials/luceneindex/"));
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_43, analyzer);
IndexWriter w = new IndexWriter(index, config);
List <String>list=readingPersonFile();
for (int i = 0; i < list.size(); i++)
{
addDoc(w, String.valueOf(i),list.get(i));
}
w.close();
}
private static void addDoc(IndexWriter w, String title, String isbn) throws IOException {
Document doc = new Document();
doc.add(new StringField("Id", title, Field.Store.YES));
doc.add(new TextField("Name", isbn, Field.Store.YES));
w.addDocument(doc);
}
Можете ли вы предоставить свой поисковый код. Может возникнуть проблема, связанная с созданием запроса. Я написал простой учебник для создания, добавления и чтения в Lucene, возможно, это может быть полезно [http://weblog4j.com/2013/06/17/searching-made-easy-with-apache-lucene-4 -3 /] (http://weblog4j.com/2013/06/17/searching-made-easy-with-apache-lucene-4-3/) –
Возможно, у Луки нет даты или вы не совершаете свои записи ? – sleeplessnerd
спасибо за ваши комментарии, я получил ответ. проблема с версией и использование анализатора. –