Установить систему Elasticsearch
В данном разделе приведена инструкция по установке Elasticsearch на Windows и Linux. Перед установкой ознакомьтесь с требованиями системы Elasticsearch в разделе по ссылке.
-
Планируется использовать функцию полнотекстового поиска по содержимому карточек.
-
Будет использоваться СУБД PostgreSQL.
Если планируется использовать СУБД Microsoft SQL, можно также использовать Elasticsearch или встроенную функцию полнотекстового поиска Microsoft SQL.
-
Планируется использовать функцию агрегации в Web-клиенте.
Elasticsearch может быть установлен на любой компьютер организации, который удовлетворяет требованиям данной системы полнотекстового поиска.
-
Загрузите систему Elasticsearch.
-
Для ОС Windows загрузите инсталлятор с сайта Elasticsearch или по данной ссылке и установите на компьютер. При установке не изменяйте настройки по умолчанию.
Рекомендуемая версия: Elasticsearch 7.14.0. Работоспособность с более высокими версиями не тестировалась. -
Для ОС Linux загрузите подходящий установочный пакет в зависимости от дистрибутива Linux. Например:
-
Astra Linux
-
РЕД ОС
$ sudo dpkg -i elasticsearch-7.14.0-amd64.deb
$ sudo rpm -i elasticsearch-7.14.0-x86_64.rpm
При желании можно использовать настроенное зеркало репозитория с пакетами Elasticsearch.
-
-
-
Скачайте вручную и установите компонент "Ingest Attachment Processor" (позволяет индексировать файлы карточек) для Elasticsearch версии 7.14.0 с сайта Elasticsearch или по данной ссылке.
-
Создайте папку
hunspell
с подпапкамиen_US
иru_RU
в директории:-
ОС Windows
-
ОС Linux
C:\ProgramData\Elastic\Elasticsearch\config
/etc/elasticsearch/
-
-
Сохраните словари Hunspell для Elasticsearch версии 7.14.0 в папки на компьютере, созданные на предыдущем шаге. Скачать словари можно по ссылкам ниже.
Словари необходимы для индексации с учетом морфологии.
-
Откройте указанные ниже файлы в браузере:
-
Вызовите контекстное меню в окне браузера и выберите пункт Сохранить как…
Рисунок 1. Сохранить как для файла "ru_RU.aff" -
В открывшемся окне проводника проверьте путь до папки и имя файла, затем нажмите Сохранить.
-
Путь до папки для файлов ru_RU.dic и ru_RU.aff.
-
ОС Windows
-
ОС Linux
C:\ProgramData\Elastic\Elasticsearch\config\hunspell\ru_RU
/etc/elasticsearch/hunspell/ru_RU/
-
-
Путь до папки для файлов en_US.dic и en_US.aff.
-
ОС Windows
-
ОС Linux
C:\ProgramData\Elastic\Elasticsearch\config\hunspell\en_US
/etc/elasticsearch/hunspell/en_US/
Расширение файлов должно быть
.dic
и.aff
, тип файла должен быть Все файлы.Не выбирайте тип файла Текстовый документ и не указывайте в имени файла расширение
.txt
.Рисунок 2. Сохранение файла "ru_RU.dic" -
-
Если словари планируется загружать прямо с сервера, можно воспользоваться командами:
mkdir -p /etc/elasticsearch/hunspell/{en_US,ru_RU}/ (1) sudo curl -Lo /etc/elasticsearch/hunspell/en_US/en_US.aff https://raw.githubusercontent.com/LibreOffice/dictionaries/master/en/en_US.aff sudo curl -Lo /etc/elasticsearch/hunspell/en_US/en_US.dic https://raw.githubusercontent.com/LibreOffice/dictionaries/master/en/en_US.dic sudo curl -Lo /etc/elasticsearch/hunspell/ru_RU/ru_RU.aff https://raw.githubusercontent.com/LibreOffice/dictionaries/master/ru_RU/ru_RU.aff sudo curl -Lo /etc/elasticsearch/hunspell/ru_RU/ru_RU.dic https://raw.githubusercontent.com/LibreOffice/dictionaries/master/ru_RU/ru_RU.dic (2) sudo chown -R root:elasticsearch /etc/elasticsearch/hunspell/
1 Загрузите словари. 2 Измените права.
-
-
-
От имени администратора выполните в консоли:
- ОС Windows
"C:\Program Files\Elastic\Elasticsearch\bin\Elasticsearch-plugin.bat" install file://%%path-to-ingest-attachment-7.14.0.zip%% (1)
1 %%path-to-ingest-attachment-7.14.0.zip%%
необходимо заменить на путь загрузки компонента.- ОС Linux
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch "file://$(realpath ingest-attachment-7.14.0.zip)" (1)
1 Если архив с плагином не располагается в текущем рабочем каталоге, можно сменить рабочий каталог или указать абсолютный путь до архива с префиксом file://
. -
Если система Elasticsearch установлена отдельно от сервера Docsvision, настройте прослушивание публичного адреса.
По умолчанию Elasticsearch прослушивает только локальный адрес
localhost
, делая невозможным подключение сервиса полнотекстового индексирования Docsvision.Чтобы настроить прослушивание публичного адреса, выполните следующие действия:-
Откройте конфигурационный файл Elasticsearch:
-
ОС Windows
-
ОС Linux
C:\ProgramData\Elastic\Elasticsearch\config\Elasticsearch.yml
/etc/elasticsearch/elasticsearch.yml
-
-
Добавьте в конец файла строку:
network.host: ${HOSTNAME}
-
Сохраните изменения.
Если не установлены дополнительные меры ограничения, данные полнотекстового индексирования станут публичными.
-
-
При установке на Linux убедитесь, что значение
vm.max_map_count
больше или равно262144
командойsysctl vm.max_map_count
. При установке на Windows пункт можно проигнорировать.Задать значение можно следующим образом:echo "vm.max_map_count=262144" | sudo tee /etc/sysctl.d/elasticsearch.conf sudo sysctl --system
-
Запустите службу Elasticsearch.
-
ОС Windows
-
ОС Linux
sc.exe start elasticsearch
sudo systemctl start elasticsearch
-
Установка с помощью Docker
-
Используйте образ
packages.docsvision.com/elasticsearch:7.14.0
или соберите его самостоятельно:FROM elasticsearch:7.14.0 RUN elasticsearch-plugin install --batch ingest-attachment ADD --chown=elasticsearch:root \ https://raw.githubusercontent.com/LibreOffice/dictionaries/master/en/en_US.aff \ https://raw.githubusercontent.com/LibreOffice/dictionaries/master/en/en_US.dic \ /usr/share/elasticsearch/config/hunspell/en_US/ ADD --chown=elasticsearch:root \ https://raw.githubusercontent.com/LibreOffice/dictionaries/master/ru_RU/ru_RU.aff \ https://raw.githubusercontent.com/LibreOffice/dictionaries/master/ru_RU/ru_RU.dic \ /usr/share/elasticsearch/config/hunspell/ru_RU/
-
Для загрузки плагина потребуется VPN. Альтернативный вариант — вместо
ingest-attachment
указать адрес своего веб-сервера с этим архивом, например,https://example.com/elastic/ingest-attachment-7.14.0.zip
, или использовать локальную копию архиваfile://абсолютный-путь-до-архива
, которая может быть добавлена в образ черезCOPY
, монтирование, или иным способом. -
Запустить можно из
docker-compose.yml
, ниже представлен минимальный рабочий вариант:version: "3.8" services: elasticsearch: image: packages.docsvision.com/elasticsearch:7.14.0 ports: - 9200:9200 environment: - discovery.type=single-node - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms1g -Xmx1g" volumes: - data:/usr/share/elasticsearch/data ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65535 hard: 65535 volumes: data: driver: local
-
Перед запуском нужно убедиться, что
vm.max_map_count
больше или равно262144
командойsysctl vm.max_map_count
. Задать значение можно следующим образом:echo "vm.max_map_count=262144" | sudo tee /etc/sysctl.d/elasticsearch.conf sudo sysctl --system
-
Команда запуска:
docker compose up (1) docker stack deploy -c docker-compose.yml es (2)
1 Вариант с docker compose. 2 Вариант с docker в swarm mode.
Первичная конфигурация Elasticsearch
-
В конфигурационный файл Elasticsearch добавьте следующую строку:
discovery.type: single-node
Добавлять строк необходимо в следующих случаях:-
Если информация о системе Elasticsearch не отображается.
-
Если возникают ошибки подключения к серверу службы Elasticsearch.
-
Если система Elasticsearch не работает.
-
-
Проверьте доступность системы Elasticsearch.
Откройте в веб-браузере (на компьютере с Elasticsearch, если прослушивается только локальный адрес, или на любом другом компьютере, если прослушивается публичный адрес) страницу
http://Elasticsearch-address:9200
.Должна отобразиться информация о системе Elasticsearch:{ "name" : "elastic.company.com", "cluster_name" : "Elasticsearch", "cluster_uuid" : "H9LHsBYIQMeEZsCytXOIbQ", "version" : { "number" : "5.5.0", "build_hash" : "260387d", "build_date" : "2017-06-30T23:16:05.735Z", "build_snapshot" : false, "lucene_version" : "6.6.0" }, "tagline" : "You Know, for Search" }
Журнал работы системы располагается в папке.
-
ОС Windows
-
ОС Linux
C:\ProgramData\Elastic\Elasticsearch\logs
/var/log/elasticsearch/
Включение функции полнотекстового поиска в Docsvision рассмотрено в пункте Настройка полнотекстового поиска.
-
-
В зависимости от нагрузки, необходимости кластеризации и других условий, выполните настройку согласно документации Elasticsearch.
-
Продолжите настройку Elasticsearch согласно инструкции в разделе Подключить полнотекстовый поиск Elasticsearch.