В этой статье опишу базовые понятия для работы с elasticsearch.

Для индексации и поиска данных в elasticsearch используется Apache Lucene. Elasticsearch - это распределенный веб-сервер на основе JSON, построенный на Apache Lucene.

Основными компонентами Elastic Stack являются Beats, Logstash, Elasticsearch, Kibana.

Для работы elasticsearch требуется наличие java. Разработчики рекомендуют использовать именно версию JDK. Для просмотра совместимости версий можно перейти по ссылке

Таблица стандартных директорий elasticsearch:

Директория Описание Переменная конфигурации
bin Бинарные скрипты, включая elasticsearch для запуска узла и elasticsearch-plugin для установки плагинов  
config Файлы конфигурации, включая elasticsearch.yml ES_PATH_CONF
data Расположение файлов данных каждого index и shard, выделенного на узле. path.data
jdk Связанная версия OpenJDK от сопровождающих JDK (GPLv2 + CE) JAVA_HOME
lib Файлы Java JAR Elasticsearch  
logs Расположение лог файлов Elasticssearch path.logs
modules Contains various Elasticsearch modules  
plugins Расположение файлов плагинов  

/n

Чтобы остановить сервис elasticsearch можно восспользоваться командой.

kill `cat elastic.pid` 

Elasticsearch принимает данные только в формате JSON.

Документами в Elasticsearch называется любые данные находящиеся в Elasticsearch.

Нода ( Node )

Node - узел с установленным elasticsearch. Каждый узел является членом кластера, включая только один узел. Т.е даже одна node является кластером.

Имя node задаётся переменной node.name в файле elasticsearch.yml или переменной при старте elasticsearch.

sudo  ./bin/elasticsearch -E node.name=my_node

Имя кластера задаётся переменной cluster.name в файле elasticsearch.yml или переменной при старте elasticsearch. Естественно у всех node должно быть одинаковое.

sudo  ./bin/elasticsearch -E cluster.name=my_cluster 

Команды ( Comands )

CRUD расшифровывается как Create, Read, Update, Delete.

PUT

POST

DELETE

GET

Запросы

Релевантность

Полнотекстовые запросы

Объединение запросов

Агрегации

Агрегация метрик

Агрегация bucket

Комбинированные агрегации

Агрегация процентильных рангов(Percentile ranks aggregation)

Cardinality aggregation

Анализ и сопоставление текста Elasticsearch

Сопоставление (Mapping)

Анализатор текса (Text analyzer)

Значения документа и инвертированный индекс

Сопоставления типов полей

Использование copy_to

Кластер, ноды и шарды

ELK - Что такое master node и cluster

ELK - Роли узлов/нод

ELK - шарды (shards)

ELK - Распределенные операции

Моделирование данных

ELK - Денормализация

ELK - Моделирование полей и общая схема

ELK - Вложенные типы данных

[ELK - Анализаторы] (https://www.tipoit.kz/elk-analyzers)

index

При выполнении PUT создаётся автоматически новый index если он не существовал.

В Elasticsearch документ индексируется в index. Вы можете использовать термин index как глагол, так и существительное.

Время от времени обновляемая статья.