Если вы хотите полностью отключить Hibernate Search, вы можете просто установить hibernate.search.autoregister_listeners
на false
, как указано в документации .
Если вы хотите отключить Hibernate Search только тогда, когда кластер Elasticsearch выключен при запуске, то в Hibernate Search такой функции нет. Однако вы можете сделать это сами.
В этом разделе документации Spring Boot упоминается, что вы можете зарегистрировать компонент HibernatePropertiesCustomizer
, который может настраивать свойства. Я полагаю, что вы могли бы зарегистрировать такой bean-компонент, и в реализации вы бы сами отправили запрос в кластер Elasticsearch, решили, будет ли он повышен или понижен на основе ответа, и установите hibernate.search.autoregister_listeners
в true
или false
в зависимости от на что. Обязательно используйте разумный тайм-аут в своем запросе, поскольку он будет выполняться каждый раз при запуске приложения.
Если вы хотите отключить вызовы кластера Elasticsearch во время запуска , но все же ожидаете, что Hibernate Search выполнит свою работу, когда объект будет сохранен или будет выполнен поиск (поскольку вы ожидаете, что кластер будет еще раз), это другая история.
Я думаю, что единственным вариантом будет установить index_schema_management_strategy
на none
, как объяснено в документации 1024 *.
Но на самом деле это не поддерживаемая функция, это то, что вы можете попробовать и сработать.
Если это работает, вам все равно придется каким-то образом убедиться, что ваша схема Elasticsearch настроена на то, что ожидает Hibernate Search. Это может стать легче, когда HSEARCH-2366 решен, но сейчас нет простого способа сделать это. Может быть, раскручивать другой экземпляр вашего приложения с index_schema_management_strategy
, установленным на create
?