Индексы, документы и поля
Индекс — это основная единица хранения в Elasticsearch, логическое пространство имён для хранения данных, обладающих схожими характеристиками. После развертывания Elasticsearch вы начнете работу с созданием индекса для хранения ваших данных.
Индекс — это коллекция документов, уникально идентифицируемых именем или псевдонимом. Это уникальное имя важно, поскольку оно используется для указания индекса в запросах поиска и других операциях.
Тесно связанное понятие — это поток данных. Эта абстракция индекса оптимизирована для данных со временем добавления, и состоит из скрытых, автоматически генерируемых базовых индексов. Если вы работаете с данными, содержащими временные метки, мы рекомендуем решение Elastic Observability для дополнительных инструментов и оптимизированного контента.
Документы и поля
Elasticsearch сериализует и хранит данные в формате JSON-документов. Документ — это набор полей, которые представляют собой пары «ключ-значение» и содержат ваши данные. Каждый документ имеет уникальный идентификатор, который можно создать или сгенерировать автоматически в Elasticsearch.
Простой документ Elasticsearch может выглядеть так:
{
"_index": "my-first-elasticsearch-index",
"_id": "DyFpo5EBxE8fzbb95DOa",
"_version": 1,
"_seq_no": 0,
"_primary_term": 1,
"found": true,
"_source": {
"email": "john@smith.com",
"first_name": "John",
"last_name": "Smith",
"info": {
"bio": "Eco-warrior and defender of the weak",
"age": 25,
"interests": [
"dolphins",
"whales"
]
},
"join_date": "2024/05/01"
}
} Метаданные поля
Индексируемый документ содержит данные и метаданные. Поля метаданных — это системные поля, которые хранят информацию о документах. В Elasticsearch поля метаданных имеют префикс нижнего подчеркивания. Например, следующие поля являются полями метаданных:
-
_index: Имя индекса, в котором хранится документ. -
_id: Идентификатор документа. Идентификаторы должны быть уникальными для каждого индекса.
Карты и типы данных
Каждый индекс имеет карту или схему, определяющую, как индексируются поля в ваших документах. Карта определяет тип данных для каждого поля, способ его индексации и хранения. При добавлении документов в Elasticsearch у вас есть два варианта для карт:
- Динамическая карта: Позволяет Elasticsearch автоматически определять типы данных и создавать карты для вас. Динамическая карта помогает быстро начать работу, но может привести к неэффективным результатам для конкретного случая использования из-за автоматического определения типа поля.
- Явная карта: Определяет карты заранее, задавая типы данных для каждого поля. Рекомендуется для использования в производственных случаях, так как вы имеете полный контроль над тем, как ваши данные индексируются, чтобы соответствовать вашему конкретному случаю использования.
Вы можете использовать комбинацию динамической и явной карт в одном индексе. Это полезно, когда у вас есть смесь известных и неизвестных полей в данных.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/documents-indices.html