Liferay 7 Remote ElasticSearch - Liferay 7 Remote ElasticSearch
Блоги
Навигационные полоски
Сначала немного предыстории. В Liferay 6 для реализации индексации и поиска информации использовался встроенный поисковый движок Lucene. Однако, как и многие модули в Liferay, поисковая подсистема была реализована через унифицированный API и это позволяло реализовывать работу через другие поисковые движки. В частности, для ситуаций когда поисковую функциональность требовалось "вынести" из Liferay (например в кластерной конфигурации), можно было использовать Solr.
В Liferay 7/DXP таким поисковым движком "по умолчанию" стал ElasticSearch - и это хорошо, так как теперь и для простых конфигураций (когда все работает в одном сервере) и для сложных (установка кластера) можно использовать один и тот же функционал.
Итак, изначально Liferay запускает ElasticSearch в "локальном" режиме - в этом случае ElasticSearch запускается внутри самого портала. Данная функциональность не рекомендуется (а для DXP является и не поддерживаемой официально) для установки в Production по ряду причин:
- это и то, что ElasticSearch в этом случае работает в той же JVM что и сам портал и может нарушить его работу,
- и то, что такую конфигурацию нельзя использовать при построении кластера,
- и что по уму сам ElasticSearch неплохо бы кластеризовать.
Итак - давайте рассмотрим что надо сделать для того, чтобы настроить портал Liferay для работы с удаленным ElasticSearch.
Предполагается - что у вас уже стоит Liferay 7.0.4 GA5 (рассматривать будем эту версию) и он использует "встроенный" ElasticSearch по умолчанию.
Установка и настройка ElasticSearch
Рассмотрим простейшую минимальную установку ElasticSearch (вопрос кластеризации и тонких настроек ElasticSearch - тема отдельной, большой статьи).
Нам потребуется ElasticSearch 2.4.x (взять можно тут - https://www.elastic.co/downloads/past-releases). На текущий момент последней версией является 2.4.6 (доступна для скачивания тут - https://www.elastic.co/downloads/past-releases/elasticsearch-2-4-6). 2.4 - это самая старшая версия ElasticSearch которая официально поддерживается текущей версией Liferay 7.0.4 (может и с 5.x и c 6.x будет работать - честно - не проверял).
Скачиваем архив, разворачиваем.
Для настройки нам надо отредактировать файл <elastichome>/config/elasticsearch.yml и вписать
cluster.name: LiferayElasticsearchCluster
Это имя кластера ElasticSearch по которому к нему потом будет обращаться портал.
Так же потребуется поставить два обязательных плагина, для этого в папке <elastichome>/bin запускаем две команды:
# ./plugin install analysis-smartcn # ./plugin install analysis-kuromoji
(этот момент с плагинами кстати пропущен в официальной документации)
Все, можно запускать ElasticSearch (команда ./elasticsearch в папке bin). Логи смотрим в папке logs.
Настройка портала Liferay для работы с удаленным ElasticSearch
Останавливаем портал и создаем файл <liferayhome>/osgi/configs/com.liferay.portal.search.elasticsearch.configuration.ElasticsearchConfiguration.config с содержимым:
operationMode="REMOTE" # If running Elasticsearch from a different computer: #transportAddresses="ip.of.elasticsearch.node:9300" # Highly recommended for all non-prodcution usage (e.g., practice, tests, diagnostics): #logExceptionsOnly="false"
В случае если вы развернули ElasticSearch на той же машине что и сам портал - больше ничего править не надо, если же вы развернули его на другом сервере - то надо раскомментировать transportAddresses и прописать там корректный IP и порт.
Рестартуем портал и после рестарта необходимо выполнить реиндекс всех объектов (Control Panel -> Configuration -> Server Administration -> Reindex all search indexes).
Через некоторое время можно тестировать - поиск по объектам должен работать как и раньше со встроенным движком.
- 6.2 (12)
- 7.0 (12)
- activiti (14)
- apache camel (6)
- camel (11)
- devcon (6)
- devops (5)
- emdev (9)
- emdev limited (9)
- entaxy (13)
- esb (10)
- fuse (5)
- gartner (7)
- google apps (6)
- jboss (5)
- liferay (143)
- liferay 7.1 (11)
- liferay dxp (11)
- liferay7 (12)
- openshift (8)
- osgi (5)
- redhat (15)
- rest (6)
- wso2 (70)
- wso2 api-m (10)
- wso2 ei (8)
- wso2ei (5)
- wso2esb (7)
- wso2is (8)
- емдев (11)
Сайт использует файлы cookie. Они позволяют узнавать вас и получать информацию о вашем пользовательском опыте. Это нужно, чтобы улучшать сайт. Посещая страницы сайта и предоставляя свои данные, вы позволяете нам предоставлять их сторонним партнерам. Если вы согласны, продолжайте пользоваться сайтом. Если нет – установите специальные настройки в браузере или обратитесь в техподдержку.