Типы данных полей
У каждого поля есть тип данных поля или тип поля. Этот тип указывает на вид данных, которые содержит поле, такие как строки или булевы значения, и его предполагаемое использование. Например, вы можете индексировать строки в полях типа text и keyword. Однако, значения в полях типа text анализируются для полнотекстового поиска, а строки типа keyword остаются без изменений для фильтрации и сортировки.
Типы полей сгруппированы по семействам. Типы в одном семействе имеют точно такое же поведение при поиске, но могут иметь разное использование памяти или характеристики производительности.
В настоящее время существует два семейства типов, keyword и text. Другие семейства типов содержат только один тип поля. Например, семейство типов boolean состоит из одного типа поля: boolean.
Общие типы
-
binary - Бинарное значение, закодированное в виде строки Base64.
-
boolean - Значения типа
trueиfalse. - Ключевые слова
- Семейство ключевых слов, включающее
keyword,constant_keywordиwildcard. - Числа
- Числовые типы, такие как
longиdouble, используемые для выражения количеств. - Даты
- Типы дат, включая
dateиdate_nanos. -
alias - Определяет псевдоним для существующего поля.
Объектные и реляционные типы
-
object - Объект JSON.
-
flattened - Весь объект JSON как одно значение поля.
-
nested - Объект JSON, который сохраняет взаимосвязь между его подполями.
-
join - Определяет родительско-дочерние отношения для документов в одном индексе.
-
passthrough - Предоставляет псевдонимы для подполей на одном уровне.
Структурированные типы данных
- Диапазон
- Типы диапазонов, такие как
long_range,double_range,date_rangeиip_range. -
ip - IP-адреса IPv4 и IPv6.
-
version - Версии программного обеспечения. Поддерживает правила приоритета Семантической версии.
-
murmur3 - Вычисляет и хранит хэши значений.
Типы агрегированных данных
-
aggregate_metric_double - Преагрегированные значения метрики.
-
histogram - Преагрегированные числовые значения в виде гистограммы.
Типы для поиска по тексту
-
textполя - Семейство типов текста, включая
textиmatch_only_text. Анализируемый, неструктурированный текст. -
annotated-text - Текст, содержащий специальную разметку. Используется для определения именованных сущностей.
-
completion - Используется для подсказок автозаполнения.
-
search_as_you_type - Тип, аналогичный
text, для автодополнения по мере ввода. -
semantic_text - Используется для выполнения семантического поиска.
-
token_count - Количество токенов в тексте.
Типы ранжирования документов
-
dense_vector - Записывает плотные векторы с плавающей точкой.
-
sparse_vector - Записывает разреженные векторы с плавающей точкой.
-
rank_feature - Записывает числовой признак для повышения попаданий в запросе во время выполнения.
-
rank_features - Записывает числовые признаки для повышения попаданий в запросе во время выполнения.
Пространственные типы данных
Другие типы
-
percolator - Индексирует запросы, написанные в Языке запросов.
Массивы
В Elasticsearch массивы не требуют выделенного типа данных поля. По умолчанию любое поле может содержать ноль или более значений, однако все значения в массиве должны быть одного типа поля. См. Массивы.
Многопольные поля
Часто бывает полезно индексировать одно и то же поле различными способами для разных целей. Например, поле string можно отобразить как поле text для полнотекстового поиска и как поле keyword для сортировки или агрегаций. В качестве альтернативы, вы можете индексировать текстовое поле с анализатором standard, анализатором english и анализатором french.
Для этого предназначены многопольные поля. Большинство типов полей поддерживают многопольные поля с помощью параметра fields.
© 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/mapping-types.html