Концепции Elasticsearch
Основные возможности
- Распределённость и работа в реальном времени: данные индексируются и становятся доступными для поиска практически мгновенно в кластере узлов.
- RESTful API: взаимодействие с данными через стандартные HTTP-методы и JSON.
- Полнотекстовый поиск: работает на базе Apache Lucene, поддерживает сложные текстовые запросы (нечёткий поиск, подсветка, стемминг).
- Документо-ориентированность: данные хранятся в виде JSON-документов, что делает хранилище бессхемным (хотя схемы можно задать явно).
- Инвертированный индекс: вместо хранения строк создаётся индекс терминов с указанием документов, в которых они содержатся, что обеспечивает чрезвычайно быстрый поиск.
- Масштабируемость: шардирование и репликация позволяют обрабатывать огромные объёмы данных и обеспечивать высокую доступность.
Анализаторы
Анализаторы используются при индексации и поиске для обработки текста. Анализатор состоит из:
- Character Filters: модифицируют текст перед токенизацией (например, удаляют HTML-теги).
- Tokenizer: разбивает текст на токены (обычно слова).
- Token Filters: модифицируют токены (например, приведение к нижнему регистру, удаление стоп-слов вроде «the» или «and», стемминг).
Standard Analyzer
Анализатор по умолчанию, который хорошо работает для большинства языков. Разбивает текст по границам слов и удаляет пунктуацию.
Пользовательские анализаторы
Вы можете определить собственные анализаторы для обработки специфических случаев — например, индексации адресов электронной почты или идентификаторов продуктов.