Можно, но это не так просто, как иметь общий каталог: два экземпляра вашего приложения не могут одновременно обращаться к одним и тем же индексным файлам.
Таким образом, обычно предпочтительным решением является:
- Только один «главный» узел имеет доступ к «главной» копии индекса, а все другие узлы отправляют «запросы на запись» на этот «главный» узел.
- Периодически копируют «главный»скопировать индекс на «подчиненные» узлы, чтобы они могли его прочитать, даже если их копия всегда будет немного устаревшей.
Hibernate Search обеспечивает реализации обоих механизмов:
- Архитектура ведущий / ведомый реализована благодаря бэкэнду JMS или бэкэнду JGroups .Обратите внимание, что бэкэнд JMS заметно менее глючит.Также обратите внимание, что вам придется настраивать JMS или JGroups самостоятельно, и это также может потребовать определенных знаний.
- Копирование осуществляется благодаря поставщикам каталогов
filesystem-master
и filesystem-slave
.
Итак, это немного сложно.
Другой вариант , возможно, проще, это использовать интеграцию Elasticsearch , перемещая индексв удаленный кластер.Его проще использовать, но у него есть некоторые нюансы, поскольку он все еще экспериментален.
Мы планируем обеспечить первоклассную поддержку интеграции Elasticsearch в следующей версии Hibernate Search, версия 6.