Лицензия
Безопасность
Elasticsearch — это распределенная система поиска и аналитики, масштабируемое хранилище данных и векторная база данных, оптимизированная для скорости и актуальности для рабочих нагрузок промышленного масштаба. Elasticsearch — это основа открытой платформы Stack компании Elastic. Выполняйте поиск в огромных наборах данных практически в режиме реального времени, выполняйте векторный поиск, интегрируйтесь с генеративными приложениями искусственного интеллекта и многое другое.
Варианты использования, доступные с помощью Elasticsearch, включают:
Поисковая дополненная генерация (RAG)
Векторный поиск
Полнотекстовый поиск
Журналы
Метрики
Мониторинг производительности приложений (APM)
Журналы безопасности
... и многое другое!
Чтобы узнать больше о функциях и возможностях Elasticsearch, посетите нашу страницу продукта.
Чтобы получить доступ к информации об инновациях в области машинного обучения и последних достижениях Lucene от Elastic, дополнительную информацию можно найти в Search Labs.
Самый простой способ настроить Elasticsearch — создать управляемое развертывание с помощью Elasticsearch Service в Elastic Cloud.
Если вы предпочитаете устанавливать Elasticsearch и управлять им самостоятельно, вы можете загрузить последнюю версию с сайта elastic.co/downloads/elasticsearch.
Предупреждение | НЕ ИСПОЛЬЗУЙТЕ ЭТИ ИНСТРУКЦИИ ДЛЯ ПРОИЗВОДСТВЕННОГО РАЗВЕРТЫВАНИЯ. Эта установка предназначена только для локальной разработки и тестирования. |
Быстро настройте Elasticsearch и Kibana в Docker для локальной разработки или тестирования с помощью сценария start-local
.
ℹ️ Более подробную информацию о настройке start-local
можно найти в README на GitHub.
Если у вас не установлен Docker, загрузите и установите Docker Desktop для вашей операционной системы.
Если вы используете Microsoft Windows, установите подсистему Windows для Linux (WSL).
Эта установка поставляется с пробной лицензией на один месяц, которая включает все функции Elastic.
После пробного периода лицензия возвращается к Бесплатной и открытой — Базовой . Дополнительную информацию см. в разделе Подписки Elastic.
start-local
Чтобы настроить Elasticsearch и Kibana локально, запустите скрипт start-local
:
локон -fsSL https://elastic.co/start-local | ш
Этот скрипт создает папку elastic-start-local
содержащую файлы конфигурации, и запускает Elasticsearch и Kibana с помощью Docker.
После запуска сценария вы можете получить доступ к службам Elastic на следующих конечных точках:
Elasticsearch : http://localhost:9200.
Кибана : http://localhost:5601
Сценарий генерирует случайный пароль для elastic
пользователя, который отображается в конце установки и сохраняется в файле .env
.
Осторожность | Эта настройка предназначена только для локального тестирования. HTTPS отключен, а для Elasticsearch используется базовая аутентификация. В целях безопасности Elasticsearch и Kibana доступны только через |
Ключ API для Elasticsearch генерируется и сохраняется в файле .env
как ES_LOCAL_API_KEY
. Используйте этот ключ для подключения к Elasticsearch с помощью клиента языка программирования или REST API.
В папке elastic-start-local
проверьте подключение к Elasticsearch с помощью curl
:
source .env Curl $ES_LOCAL_URL -H " Авторизация: ApiKey ${ES_LOCAL_API_KEY} "
Вы отправляете данные и другие запросы в Elasticsearch через REST API. Вы можете взаимодействовать с Elasticsearch, используя любой клиент, который отправляет HTTP-запросы, например языковые клиенты Elasticsearch и Curl.
Вот пример команды Curl для создания нового индекса Elasticsearch с использованием базовой аутентификации:
curl -u elastic: $ELASTIC_PASSWORD -X PUT http://localhost:9200/my-new-index -H ' Тип контента: application/json '
Чтобы подключиться к локальному кластеру Elasticsearch для разработчиков с помощью языкового клиента, вы можете использовать базовую аутентификацию с elastic
именем пользователя и паролем, который вы установили в переменной среды.
Вы будете использовать следующие данные подключения:
Конечная точка Elasticsearch : http://localhost:9200
Имя пользователя : elastic
Пароль : $ELASTIC_PASSWORD
(значение, которое вы установили в переменной среды)
Например, чтобы подключиться к клиенту Python elasticsearch
:
импортировать ОС из elasticsearch import Elasticsearch имя пользователя = 'elastic' пароль = os . getenv ( 'ELASTIC_PASSWORD' ) # Значение, которое вы устанавливаете в переменной среды client = Elasticsearch ( "http://localhost:9200" , Basic_auth = ( имя пользователя , пароль )) print ( client.info ())
Консоль разработчика Kibana предоставляет простой способ экспериментировать и тестировать запросы. Чтобы получить доступ к консоли, откройте Kibana, затем перейдите в «Управление» > «Инструменты разработки» .
Добавить данные
Вы индексируете данные в Elasticsearch, отправляя объекты JSON (документы) через API REST. Независимо от того, есть ли у вас структурированный или неструктурированный текст, числовые данные или геопространственные данные, Elasticsearch эффективно хранит и индексирует их таким образом, чтобы поддерживать быстрый поиск.
Для данных с отметками времени, таких как журналы и метрики, вы обычно добавляете документы в поток данных, состоящий из нескольких автоматически создаваемых вспомогательных индексов.
Чтобы добавить в индекс один документ, отправьте HTTP-запрос на публикацию, нацеленный на индекс.
POST /customer/_doc/1 { "имя": "Дженнифер", "фамилия": "Уолтерс" }
Этот запрос автоматически создает индекс customer
, если он не существует, добавляет новый документ с идентификатором 1, а также сохраняет и индексирует поля firstname
и lastname
.
Новый документ доступен немедленно с любого узла кластера. Вы можете получить его с помощью запроса GET, в котором указывается идентификатор документа:
ПОЛУЧИТЬ /клиент/_doc/1
Чтобы добавить несколько документов в одном запросе, используйте API _bulk
. Массовые данные должны быть в формате JSON с разделителями-новой строкой (NDJSON). Каждая строка должна заканчиваться символом новой строки ( n
), включая последнюю строку.
PUT customer/_bulk { "create": { } } { "firstname": "Monica","lastname":"Rambeau"} { "create": { } } { "firstname": "Carol","lastname": "Дэнверс"} { "create": { } } { "firstname": "Ванда","lastname":"Maximoff"} { "create": { } } { "firstname": "Дженнифер","lastname": "Такеда"}
Поиск
Проиндексированные документы доступны для поиска практически в режиме реального времени. Следующий поиск соответствует всем клиентам с именем Дженнифер в индексе customer
.
GET customer/_search { "query" : { "match" : { "firstname": "Дженнифер" } } }
Исследовать
Вы можете использовать Discover в Kibana для интерактивного поиска и фильтрации ваших данных. Отсюда вы можете начать создавать визуализации, а также создавать информационные панели и делиться ими.
Для начала создайте представление данных , которое подключается к одному или нескольким индексам Elasticsearch, потокам данных или псевдонимам индексов.
Перейдите в «Управление» > «Управление стеком» > «Kibana» > «Представления данных» .
Выберите Создать представление данных .
Введите имя представления данных и шаблон, соответствующий одному или нескольким индексам, например customer .
Выберите «Сохранить представление данных в Kibana» .
Чтобы начать исследование, выберите «Аналитика» > «Обнаружение» .
Чтобы выполнить обновление с более ранней версии Elasticsearch, см. документацию по обновлению Elasticsearch.
Elasticsearch использует Gradle для своей системы сборки.
Чтобы собрать дистрибутив для вашей локальной ОС и распечатать его местоположение после завершения, запустите:
./gradlew localDistro
Чтобы собрать дистрибутив для другой платформы, выполните соответствующую команду:
./gradlew :distribution:archives:linux-tar:assemble ./gradlew :distribution:archives:darwin-tar:assemble ./gradlew :distribution:archives:windows-zip:assemble
Чтобы собрать дистрибутивы для всех поддерживаемых платформ, запустите:
./gradlew собрать
Раздачи выводятся в distribution/archives
.
Чтобы запустить набор тестов, см. ТЕСТИРОВАНИЕ.
Полную документацию по Elasticsearch можно найти на сайте elastic.co.
Информацию о наших процессах документирования см. в README документации.
Репозиторий elasticsearch-labs
содержит исполняемые блокноты Python, примеры приложений и ресурсы для тестирования Elasticsearch для векторного поиска, гибридного поиска и вариантов использования генеративного ИИ.
Рекомендации по внесению взносов см. в разделе ВКЛАД.
Чтобы сообщить об ошибке или запросить функцию, создайте проблему на GitHub. Убедитесь, что кто-то другой не создал проблему по той же теме.
Нужна помощь с использованием Elasticsearch? Обратитесь на Elastic Forum или в Slack. Другой член сообщества или инженер Elastic будут рады вам помочь.