Я использую Lucene 4.6. Я создал Lucene IndexWriter (в CREATE MODE) и добавил документы и зафиксировал его (не закрыл его). Затем выполнил поисковый запрос и сохранил результаты. Снова я добавил документы в индексный писатель и совершил его и закрыл. И запустил на нем поисковый запрос. Он также дал результаты с новыми данными и старыми данными. Старые данные также присутствовали в индексе. Могу ли я узнать, как удалить все данные из индекса. Есть ли способ удалить все документы на растяжку?
Метод indexwriter.deleteall удалит все документы в индексе, и вы можете повторно использовать один и тот же индексный индекс для создания индекса на новых документах и запуска поискового запроса и позднее закрыть его, когда вам понадобится
Было бы лучше, если бы вы могли предоставить нам фрагмент кода, но, похоже, проблема в том, что вы используете OpenMode.CREATE
вместо OpenMode.CREATE_OR_APPEND
. В этом случае каждый раз, когда вы создаете объект IndexWriter
, старые данные затягиваются, а не добавляются.
Кроме того, убедитесь, что вы используете последнюю версию. Ток v4.9.0