Я обнаружил, что Lucene не будет индексировать непроанализированное поле, если оно слишком велико (выглядит как предел 16kb).Lucene не индексирует большие, неанализированные поля
В моем приложении я ищу, например. " *что нибудь* ". Это прекрасно работает и находит мой документ. Если я увеличиваю размер текста, более 16 КБ, поиск перестанет его искать.
Вот как добавляется поле ...
String property = ...
String value = ...
Field field = new Field(property, value, Field.Store.NO, Field.Index.NOT_ANALYZED);
Из-за ошибки в затмении я не могу отлаживать код Lucene (в настоящее время, установка NetBeans!) Так интересно, если кто-нибудь знает, где предел и если его можно увеличить?
И прежде, чем кто-либо предложит не использовать NOT_ANALYZED или сократить текст, это в конвейере!
В Lucene действительно существует предел для неанализируемых полей. Точнее, существует ограничение на длину одного термина (см. [IndexWriter # MAX_TERM_LENGTH] (http://lucene.apache.org/core/5_3_0/core/org/apache/lucene/index/IndexWriter.html# MAX_TERM_LENGTH)). Разумеется, вы можете анализировать текст с помощью соответствующего анализатора и основывать свой поиск на этом. – user1071777