Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Что такое Elasticsearch?

Данные в документах и индексах

Elasticsearch — это распределённое хранилище документов. Вместо хранения информации в виде строк столбцовых данных, Elasticsearch хранит сложные структуры данных, сериализованные в JSON-документы. При наличии нескольких узлов Elasticsearch в кластере, хранимые документы распределяются по кластеру и могут быть обработаны мгновенно с любого узла.

При хранении документа, он индексируется и становится полностью доступным для поиска в режиме реального времени — в течение 1 секунды. Elasticsearch использует структуру данных, называемую инвертированным индексом, которая поддерживает очень быстрый полнотекстовый поиск. Инвертированный индекс перечисляет каждое уникальное слово, встречающееся в любом документе, и определяет все документы, в которых каждое слово встречается.

Индекс можно рассматривать как оптимизированную коллекцию документов, а каждый документ — как набор полей, которые представляют собой пары «ключ-значение», содержащие ваши данные. По умолчанию Elasticsearch индексирует все данные во всех полях, и каждое индексированное поле имеет свою оптимизированную структуру данных. Например, текстовые поля хранятся в инвертированных индексах, а числовые и гео-поля — в деревьях BKD. Возможность использования структур данных для каждого поля для сборки и возвращения результатов поиска — то, что делает Elasticsearch таким быстрым.

Elasticsearch также может быть бессхемным, что означает, что документы могут быть индексированы без явного указания, как обработать каждое из различных полей, которые могут встретиться в документе. Когда динамическое отображение включено, Elasticsearch автоматически обнаруживает и добавляет новые поля в индекс. Это поведение по умолчанию упрощает индексирование и исследование данных — просто начинайте индексировать документы, и Elasticsearch обнаружит и сопоставит булевы, значения с плавающей запятой и целые числа, даты и строки с соответствующими типами данных Elasticsearch.

Однако в конечном итоге вы знаете больше о своих данных и о том, как вы хотите их использовать, чем Elasticsearch. Вы можете определить правила для управления динамическим отображением и явно определить отображения, чтобы полностью контролировать способ хранения и индексирования полей.

Определение собственных отображений позволяет:

  • Различать поля строковых данных для полнотекстового поиска и поля строковых данных для поиска точного значения
  • Выполнять языкоспецифический анализ текста
  • Оптимизировать поля для частичного соответствия
  • Использовать настраиваемые форматы дат
  • Использовать типы данных, такие как geo_point и geo_shape, которые нельзя автоматически распознать

Часто бывает полезно индексировать одно и то же поле различными способами для разных целей. Например, вы можете индексировать строковое поле как текстовое поле для полнотекстового поиска и как ключевое поле для сортировки или агрегирования данных. Или вы можете использовать более одного языкового анализатора для обработки содержимого строкового поля, содержащего пользовательский ввод.

Цепочка анализа, применяемая к полнотекстовому полю во время индексирования, также используется во время поиска. Когда вы запрашиваете полнотекстовое поле, текст запроса подвергается аналогичному анализу перед тем, как термины будут проверены в индексе.

© 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/7.17/documents-indices.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API