Проблема связана с тем, что ваш метод document.getType()
возвращает строку и там
не является конструктором в классе Field
, который соответствует вашему вызову.
Смотри http://lucene.apache.org/java/3_0_3/api/all/org/apache/lucene/document/Field.html.
Если я проверю ваш код в моей среде, Eclipse скажет:
Поле конструктора (String, String) не определено
Может быть, вы могли бы сделать следующее:
Document _document = new Document();
_document.add(new Field("type", document.getType().getBytes(), Store.YES);
// Or document.add(new Field("type", document.getType().getBytes(), Store.NO);
ОБНОВЛЕНИЕ после отправки исходного кода --------------------
Проблема заключается в том, что в вашем классе есть внутренний класс с именем Document. Существует конфликт имен между вашим классом Document и Lucene. Когда вы создаете экземпляр документа с помощью строки Document _document = new Document();
, вы на самом деле создаете экземпляр класса ВАШ документ Вот почему компилятор не может найти метод add
.
Несколько решений:
а. Создание экземпляра документа с префиксом имени пакета Lucene
org.apache.lucene.document.Document _document = new org.apache.lucene.document.Document();
б. Переименуйте свой внутренний класс, чтобы у вас не было конфликта имен.