Как загрузить существующий индекс Lucene в Infinispan?

В моей системе с Infinispan 6.0.2 я добавил некоторые данные в кеш и проиндексировал их с помощью lucene. Это хорошо работает для поисковой части.

Но поскольку на сервере существуют кэши, иногда, когда сервер выходит из строя, мне нужно перезагрузить данные и проиндексировать их. Это занимает много времени.

Затем я обнаружил, что Infinispan может хранить индекс в базе данных и загружать из существующего индекса Lucene. Я думаю, что это должно исправить мою проблему. Но в руководстве пользователя Infinispan мало информации, я не знаю, как это сделать. Может кто-нибудь дать мне пример???

1 ответ

Infinispan включает хорошо масштабируемую распределенную реализацию Apache Lucene Directory. Чтобы создать экземпляр каталога:

import org.apache.lucene.store.Directory;
import org.infinispan.lucene.directory.DirectoryBuilder;
import org.infinispan.Cache;

Cache cache = // create an Infinispan cache, configured as you like
Directory indexDir = DirectoryBuilder.newDirectoryInstance(cache, cache, cache, indexName)
                                     .create();

IndexName - это уникальный ключ для идентификации вашего индекса. Он играет ту же роль, что и путь к индексам на основе файловой системы: вы можете создать несколько разных индексов, дав им разные имена. Когда вы используете одно и то же indexName в другом экземпляре, подключенном к той же сети (или создан на том же компьютере, что полезно для тестирования), они объединятся, сформируют кластер и поделятся всем контентом. Использование другого indexName позволяет хранить разные индексы в одном и том же наборе кэшей.

В этом примере кеш пропускается три раза, так как для быстрой демонстрации это нормально, но, как подсказывает API, рекомендуется настроить каждый кеш отдельно, так как они будут использоваться по-разному. Более подробная информация представлена ​​ниже.

Новые узлы могут быть добавлены или удалены динамически, что делает администрирование сервиса очень простым и также подходит для облачных сред: просто реагировать на скачки нагрузки, так как добавление дополнительной памяти и мощности ЦП в поисковую систему выполняется простым запуском большего количества узлов.

Для получения подробной информации обратитесь к документации и справочнику по API.

Другие вопросы по тегам