Я пытаюсь проиндексировать большой документ, длина которого превышает ограничение длины строки с помощью Lucene Maven. Затем я получаю эту ошибку.
Caused by: java.lang.IllegalArgumentException: Document contains at least one immense term in field="content" (whose UTF8 encoding is longer than the max length 32766), all of which were skipped. Please correct the analyzer to not produce such terms. The prefix of the first immense term is: '[65, 32, 98, 101, 110, 122, 111, 100, 105, 97, 122, 101, 112, 105, 110, 101, 32, 91, 116, 112, 108, 93, 73, 80, 65, 99, 45, 101, 110, 124]...', original message: bytes can be at most 32766 in length; got 85391
Код такой, как показано ниже (это копия из http://lucenetutorial.com/lucene-in-5-minutes.html с очень небольшим изменением для чтения документа из файла.):
File file = "doc.txt";
StandardAnalyzer analyzer = new StandardAnalyzer();
Directory index = new RAMDirectory();
IndexWriterConfig config = new IndexWriterConfig(analyzer);
IndexWriter w = new IndexWriter(index, config);
Document doc = new Document();
Scanner scanner = new Scanner(file))
while (scanner.hasNextLine())
{
String line = scanner.nextLine();
doc.add(new StringField("content", line, Field.Store.YES));
w.addDocument(doc);
}
...
Есть и другие сообщения с той же проблемой, что и у меня, но они являются решениями для SOLR или Elasticsearch, а не для Lucene на Maven, поэтому я не совсем уверен, как решить эту проблему.
Может кто-нибудь направить меня в нужное место, чтобы решить эту проблему, пожалуйста?
Заранее спасибо.