Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Elasticsearch версии 8.9.1 (другие версии не совместимы и не поддерживают требуемый плагин).

  • Настроенный экземпляр Elasticsearch (устанавливается клиентом любым удобным способом: напрямую на Linux, через Docker, и т.д.).

  • Доступ к Elasticsearch по HTTP(S).

  • API-ключ (если используется безопасный доступ).


1. Подготовка. Установка Elasticsearch 8.9.1.

После установки нам необходимо перейти в файл конфигурации elasticsearch.yml и указать минимальные нобходимые параметры для работы без API ключа (который далее можно не указывать в конфигурации knowledgebase). ДАННЫЕ ПАРАМЕТРЫ НЕОБХОДИМЫ ДЛЯ ТЕСТИРОВАНИЯ В localhost на сервере LINUX

  1. .../elasticsearch.yml:
    Code Block
    languagebash
    themeConfluence
    titlebash
    cluster.name: test-cluster
    node.name: node-1
    network.host: 0.0.0.0
    http.port: 9200
    
    discovery.type: single-node
    
    # Отключаем настройки безопасности
    xpack.security.enabled: false
    xpack.security.transport.ssl.enabled: false
    xpack.security.http.ssl.enabled: false
  2. После сохранения конфига перезапускаем сервис elasticsearch.service и проверяем статус - должен быть Active: active (running)




2. Подготовка. Установка плагина для Elasticsearch

Плагин analysis-morphology предназначен для обработки текста на русском языке в Elasticsearch.

...

  1. Скачайте архив с плагином (elasticsearch-analysis-morphology-8.9.1.zip) на сервер.

  2. Перейдите в директорию Elasticsearch

  3. Установите плагин:
    Code Block
    languagebash
    themeConfluence
    titlebash
    bin/elasticsearch-plugin install file:///tmp/elasticsearch-analysis-morphology-8.9.1.zip
    (замените /tmp/elasticsearch-analysis-morphology-8.9.1.zip на актуальный путь к архиву)

  4. Перезапустите службу Elasticsearch:
    Code Block
    languagebash
    themeConfluence
    titlebash
    systemctl restart elasticsearch.service
  5. Проверьте установку:
    Code Block
    languagebash
    themeConfluence
    titlebash
    curl http://localhost:9200/_cat/plugins





3. Настройка подключения в IQWiki

1. Укажите параметры подключения к Elasticsearch в конфигурационном файле IQWiki:

...

Code Block
./bin/knowledgebase migrate
Expand
titleЕсли на этом этапе в консоли ошибка, то...
Ошибка может быть следующего вида:
Code Block
titlebash
025/05/15 17:00:08     WARN    postgres:pgx    Using pgx driver
2025/05/15 17:00:08     ERROR   elasticsearch client    Error creating ElasticSearch client: ElasticSearch config is empty      {id=b17fe5aa-0261-4b60-b448-155cff1f0a43}
2025/05/15 17:00:08     WARN    migrations      Migrating...
2025/05/15 17:00:08     WARN    migrations      Reading migrations from "migrations/postgres"
2025/05/15 17:00:08     WARN    migrations      Applied 0 migration(s) in 6ms

2025/05/15 17:00:08     WARN    service migrations      Migrating services...   {id=4e40c0c7-fa57-4225-8877-314dc368d5a8}
2025/05/15 17:00:08     WARN    iq-knowledge-base       Starting...     {id=df6b4dea-95d0-49e6-bb9a-ce4920b554fb}
2025/05/15 17:00:08     WARN    iq-knowledge-base       Started {id=df6b4dea-95d0-49e6-bb9a-ce4920b554fb}
2025/05/15 17:03:57     ERROR   elasticsearch client    Error searching documents: dial tcp 127.0.0.1:9200: connect: connection refused {id=fd5fe8ff-7e53-4942-9882-814bc3da6d82, ip=127.0.0.1, ua=Go-http>
2025/05/15 17:03:57     ERROR   httpd2  Internal server error, err=dial tcp 127.0.0.1:9200: connect: connection refused {id=0fe0d6f0-4bf5-4940-9b1a-e626faa40009, ip=127.0.0.1, ua=Go-http-client/1.1}
2025/05/15 17:05:02     ERROR   elasticsearch client    Error searching documents: dial tcp 127.0.0.1:9200: connect: connection refused {id=efc2c505-4dce-4a56-ab60-86e9394dc009, ip=127.0.0.1, ua=Go-http>
2025/05/15 17:05:02     ERROR   httpd2  Internal server error, err=dial tcp 127.0.0.1:9200: connect: connection refused {id=285249ae-f1e0-40a2-9ac3-0a9846f62516, ip=127.0.0.1, ua=Go-http-client/1.1}
2025/05/15 17:05:26     WARN    iq-knowledge-base       Stopping...     {id=df6b4dea-95d0-49e6-bb9a-ce4920b554fb}
2025/05/15 17:05:26     WARN    iq-knowledge-base       Stopped {id=df6b4dea-95d0-49e6-bb9a-ce4920b554fb}
2025/05/15 17:05:29     WARN    postgres:pgx    Using pgx driver
2025/05/15 17:05:29     ERROR   elasticsearch client    Error creating ElasticSearch client: ElasticSearch config is empty      {id=4046a743-a3a7-4263-b488-241717c6bc1f}
2025/05/15 17:05:29     ERROR   elasticsearch client    Error checking indice existence the index: dial tcp 127.0.0.1:9200: connect: connection refused {id=f9358cee-6fb2-45e1-9e46-235739044e12}
panic: reflect: Call using zero Value argument

Тогда нам необходимо проверить:
1) Корректность подключения к elasticsearch в конфигурации дистрибутива Базы Знаний (в конфиге БЗ ./config/config.yaml), если ОК идем далее.
2) Корректность конфигурации elasticsearch (elasticsearch.yml). Возможно имеется не убитый процесс elastic, нужно проверить через команду:
Code Block
titlebash
ps aux | grep elasticsearch
И если процессов нет, проверить, что конфигурация из пункта 1.1 корректно записалась, после перезапустить сервис elastic.search




3. Запустите IQWiki:

Code Block
./bin/knowledgebase.sh start

4. Проверка доступности Elasticsearch

Для проверки доступности сервера используйте команду:

...