Hibernate Search - воссоздает индекс, если существующие данные не были проиндексированы ранее - PullRequest
0 голосов
/ 07 января 2019

У меня есть проект, в котором много данных в БД. Я добавляю Hibernate Search в проект. Поскольку я хочу, чтобы существующие данные были проиндексированы, я хочу начать индексирование их при запуске моей службы через

fullTextEntityManager.createIndexer().startAndWait()

Но я хочу сделать это только один раз (когда существующие данные не были проиндексированы), поскольку все последующие изменения данных будут синхронизированы.

Итак, мой вопрос: есть ли у Hibernate Search какой-либо метод, чтобы проверить, существуют ли уже созданные индексы для сущностей или нет? Мне нужно понять, нужно ли перестраивать все индексы (при первом запуске) или нет (например, когда мое приложение запустилось после обновления, и мне не нужно очищать все индексы и создавать их заново), чтобы избежать длительного запускать каждый раз, когда я перезапускаю приложение.

1 Ответ

0 голосов
/ 07 января 2019

Это не может быть безопасно и надежно обнаружено с помощью Hibernate Search, поэтому мы намеренно пропустили это.

Лучше всего, если вы добавите метод для его запуска, чтобы вы могли управлять им явно; MassIndexer также можно легко вызывать через JMX.

Я обычно добавляю кнопку "перестроить индексы" в моем представлении панели управления "admin"; это всегда будет полезно; -)

...