Поиск по сайту:

Как установить и настроить Elasticsearch в Ubuntu 22.04


Elasticsearch — это распределенная система поиска и анализа с открытым исходным кодом. Он основан на Apache Lucene и позволяет искать различные типы структурированных и неструктурированных данных, таких как текстовые, числовые или геопространственные данные. Это популярная поисковая система, предназначенная для приложений со сложными требованиями к поиску. Вы можете интегрировать Elasticsearch со своим приложением, чтобы добавить функции поиска.

Из этого туториала вы узнаете, как установить Elasticsearch в Ubuntu 22.04.

Требования

  • Сервер под управлением Ubuntu 22.04.
  • На сервере установлен пароль root.

Установить Java

Поскольку Elasticsearch основан на Java, вам необходимо установить Java на свой сервер. Вы можете установить Java JDK, используя следующую команду:

apt install default-jdk -y

После установки Java вы можете проверить версию Java с помощью следующей команды:

java --version

Вы должны увидеть следующий вывод:

openjdk 11.0.15 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)

Добавить репозиторий Elasticsearch

По умолчанию пакет Elasticsearch не включен в репозиторий по умолчанию Ubuntu 22.04. Поэтому вам необходимо добавить официальный репозиторий в APT.

Сначала установите необходимые зависимости, используя следующую команду:

apt install curl wget gnupg2 wget -y

После установки всех зависимостей добавьте ключ Elasticsearch GPG с помощью следующей команды:

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor -o /usr/share/keyrings/elastic.gpg

Затем добавьте репозиторий Elasticsearch в APT, используя следующую команду:

echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list

Затем обновите кеш репозитория с помощью следующей команды:

apt update -y

После обновления репозитория вы можете перейти к следующему шагу.

Установите Elasticsearch на Ubuntu 22.04.

Теперь установите Elasticsearch с помощью следующей команды:

apt install elasticsearch -y

После установки пакета Elasticsearch отредактируйте файл конфигурации Elasticsearch:

nano /etc/elasticsearch/elasticsearch.yml

Измените следующую строку:

network.host: localhost

Сохраните и закройте файл и запустите службу Elasticsearch с помощью следующей команды:

systemctl start elasticsearch

Вы можете проверить статус Elasticsearch с помощью следующей команды:

systemctl status elasticsearch

Вы должны увидеть следующий вывод:

? elasticsearch.service - Elasticsearch
     Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-05-28 10:44:01 UTC; 8s ago
       Docs: https://www.elastic.co
   Main PID: 7259 (java)
      Tasks: 68 (limit: 2292)
     Memory: 1.2G
        CPU: 45.941s
     CGroup: /system.slice/elasticsearch.service
             ??7259 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.tt>
             ??7417 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

May 28 10:43:20 ubuntu2204 systemd[1]: Starting Elasticsearch...
May 28 10:44:01 ubuntu2204 systemd[1]: Started Elasticsearch.

Проверка установки Elasticsearch

После установки Elasticsearch вы можете проверить установку Elasticsearch с помощью следующей команды:

curl -X GET 'http://localhost:9200'

Вы должны увидеть следующий вывод:

{
  "name" : "ubuntu2204",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "lrkrHPovRgiCdF67bVnS9w",
  "version" : {
    "number" : "7.17.4",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "79878662c54c886ae89206c685d9f1051a9d6411",
    "build_date" : "2022-05-18T18:04:20.964345128Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Как использовать Elasticsearch

С Elasticsearch вы можете создавать, читать, обновлять и удалять данные с помощью команды Curl. Чтобы добавить запись в Elasticsearch, выполните следующую команду:

curl -XPOST -H "Content-Type: application/json" 'http://localhost:9200/tutorial/helloworld/1' -d '{ "message": "Hello World!" }'

Вы получите следующий результат:

{"_index":"tutorial","_type":"helloworld","_id":"1","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}

Теперь вы можете получить добавленную запись с помощью следующей команды:

curl -X GET -H "Content-Type: application/json" 'http://localhost:9200/tutorial/helloworld/1'

Вы получите следующий результат:

{"_index":"tutorial","_type":"helloworld","_id":"1","_version":1,"_seq_no":0,"_primary_term":1,"found":true,"_source":{ "message": "Hello World!" }}

Чтобы изменить существующую запись, используйте команду put, как показано ниже:

curl -X PUT -H "Content-Type: application/json" 'localhost:9200/tutorial/helloworld/1?pretty' -d ' { "message": "Hello, People!" }'

Вы получите следующий результат:

{
  "_index" : "tutorial",
  "_type" : "helloworld",
  "_id" : "1",
  "_version" : 2,
  "result" : "updated",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 1,
  "_primary_term" : 1
}

Теперь вы можете получить добавленную запись в более читаемом формате, используя следующую команду:

curl -X GET -H "Content-Type: application/json" 'http://localhost:9200/tutorial/helloworld/1?pretty'

Вы получите следующий результат:

{
  "_index" : "tutorial",
  "_type" : "helloworld",
  "_id" : "1",
  "_version" : 2,
  "_seq_no" : 1,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "message" : "Hello, People!"
  }
}

Заключение

Поздравляю. Вы успешно установили Elasticsearch в Ubuntu 22.04. Теперь вы можете интегрировать Elasticsearch в свое приложение и искать данные в режиме реального времени.

Статьи по данной тематике: