Поисковый движок elasticsearch – это автократическая обертка над Lucene. Движок способен работать из коробки, не требуя к себе каких-либо предварительных ласк. Модная штучка для любителей похвастаться современным поиском, по семантической мощности напоминающего крупные поисковые движки. Обо всех плюсах elasticsearch интересующиеся могут узнать из официального сайта или из бложика какого-нибудь сумасшедшего фанатика.

Java является основным требованием для установки ElasticSearch. Поэтому убедитесь что она установлена на вашей системе.

1
2
3
4
5
# java -version 

java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)

Если Java не установлена, то в любом случае сначала нужно её установить.

Elasticsearch может быть загружен непосредственно с официального сайта, более того, он предлагает уже собранные пакеты для RHEL и Debian.

Установка elasticsearch:

Скачаем и установим публичный ключ.

Ubuntu 14.10 & Linux Mint 17.1

$ wget -qO - https://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -

RHEL 7 / CentOS 7

# rpm --import https://packages.elasticsearch.org/GPG-KEY-elasticsearch

Активируем репозитарий elasticsearch.

Ubuntu 14.10 & Linux Mint 17.1

$ sudo add-apt-repository "deb http://packages.elasticsearch.org/elasticsearch/1.4/debian stable main"

RHEL 7 / CentOS 7

1
2
3
4
5
6
7
8
# cat <<EOF >> /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-1.4]
name=Elasticsearch repository for 1.4.x packages
baseurl=http://packages.elasticsearch.org/elasticsearch/1.4/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1
EOF

Установим elasticsearch, используя следующие команды:

Ubuntu 14.10 & Linux Mint 17.1

$ sudo apt-get update && sudo apt-get install elasticsearch

RHEL 7 / CentOS 7

# yum -y install elasticsearch

Настроим запуск elasticsearch во время загрузки системы.

Ubuntu 14.10 & Linux Mint 17.1

$ sudo update-rc.d elasticsearch defaults 95 10

RHEL 7 / CentOS 7

1
2
3
/bin/systemctl daemon-reload
/bin/systemctl enable elasticsearch.service
/bin/systemctl start elasticsearch.service

Конфигурация Elasticsearch:

Файлы конфигурации elasticsearch находятся в /etc/elasticsearch/ директории, в ней обычно всего два файла, elasticsearch.yml и logging.yml. В файле logging.yml находятся настройки логирования elasticsearch. По умолчанию логи хранятся в директории /var/log/elasticsearch/elasticsearch.yml это основной файл конфигурации elasticsearch, содержит настройки по умолчанию для запуска производственного кластера. Elasticsearch по умолчанию слушает все сетевые интерфейсы (0.0.0.0), порты 9200-9300 для HTTP трафика и 9300-9400 для внутренней коммуникации между нодами. Диапазон значит что если порт занят, elasticsearch будет автоматически пытаться подключиться к следующему.

Редактируем elasticsearch.yml файл.

# vi /etc/elasticsearch/elasticsearch.yml

Для того чтоб Elasticsearch слушал конкретный IP адрес, пропишите этот адрес в конфиг. Для защиты elasticsearch от публичного доступа, вы можете настроить его на прослушивание только локального интерфейса.

Listening on particular IPv4

network.bind_host: 192.168.0.1

Disabling public access

network.bind_host: 127.0.0.1

Перезапустите сервис elasticsearch. # service elasticsearch restart

После перезапуска подождите хотя бы одну минуту, чтобы позволить Elasticsearch полностью запуститься, иначе тест дальше не отработает. В данный момент elasticsearch должен уже слушать порт 9200 для обработки HTTP запросов. Используем CURL для теста. # curl -X GET 'http://localhost:9200'

Вы должны получить подобный ответ:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{
"status" : 200,
"name" : "Toad-In-Waiting",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.4.4",
"build_hash" : "c88f77ffc81301dfa9dfd81ca2232f09588bd512",
"build_timestamp" : "2015-02-19T13:05:36Z",
"build_snapshot" : false,
"lucene_version" : "4.10.3"
},
"tagline" : "You Know, for Search"
}

Кроме того, вы можете использовать браузер для запросов к elasticsearch, подключаясь к IP:9200. Вы должны увидеть на странице такой же ответ, как и с помощью CURL.

Вот и всё.

Использованы материалы
http://tecadmin.net,
http://www.itzgeek.com