mapping是定义文档及其包含的字段的存储和索引方式的过程。例如,使用mapping定义:
mapping定义具有:
元数据字段用于自定义如何处理文档的关联元数据。元数据字段的例子包括文档 _index
,_id
和 _source
领域。
映射包含properties
与文档有关的字段列表。每个字段都有其自己的数据类型。
防止mapping爆炸的设置
在索引中定义太多字段会导致mapping爆炸,这可能会导致内存不足错误和难以恢复的情况。
考虑一种情况,其中插入的每个新文档都引入了新字段,例如带有动态映射的字段。每个新字段都添加到索引映射中,随着映射的增长,这可能会成为问题。
index.mapping.total_fields.limit:
索引中的最大字段数。字段和对象的映射以及字段别名都计入此限制。默认值为1000
indices.query.bool.max_clause_count
: 将限制查询中布尔子句的最大数量
index.mapping.depth.limit: 字段的最大深度,以内部对象的数量衡量,默认值为20
。
index.mapping.nested_fields.limit:
index.mapping.nested_objects.limit:
index.mapping.field_name_length.limit:
Field Data type:
Each field has a field data type, or field type. This type indicates the kind of data the field contains, such as strings or boolean values, and its intended use.
Field types are grouped by family. Types in the same family support the same search functionality but may have different space usage or performance characteristics.
Common types
Binary value encoded as a Base64 string.
true
and false
values.
The keyword family, including keyword
, constant_keyword
, and wildcard
.
Numeric types, such as long
and double
, used to express amounts.
Dates
Date types, including date
and date_nanos
.
Defines an alias for an existing field.
Objects and relational types
A JSON object.
An entire JSON object as a single field value.
A JSON object that preserves the relationship between its subfields.
Defines a parent/child relationship for documents in the same index.
Structured data types
Range types, such as long_range
, double_range
, date_range
, and ip_range
.
IPv4 and IPv6 addresses.
Software versions. Supports Semantic Versioning precedence rules.
Compute and stores hashes of values.
Aggregate data typesedit
Pre-aggregated numerical values.
Text search typesedit
Analyzed, unstructured text.
Text containing special markup. Used for identifying named entities.
Used for auto-complete suggestions.
text
-like type for as-you-type completion.
A count of tokens in a text.
Document ranking typesedit
Records dense vectors of float values.
Records sparse vectors of float values.
Records a numeric feature to boost hits at query time.
Records numeric features to boost hits at query time.
Spatial data typesedit
Latitude and longitude points.
Complex shapes, such as polygons.
Arbitrary cartesian points.
Arbitrary cartesian geometries.
Other types
Indexes queries written in Query DSL.
Arrays
In Elasticsearch, arrays do not require a dedicated field data type. Any field can contain zero or more values by default, however, all values in the array must be of the same field type. See Arrays.
Multi-fields
It is often useful to index the same field in different ways for different purposes. For instance, a string
field could be mapped as a text
field for full-text search, and as a keyword
field for sorting or aggregations. Alternatively, you could index a text field with the standard
analyzer, the english
analyzer, and the french
analyzer.
This is the purpose of multi-fields. Most field types support multi-fields via the fields
parameter.
Metadata fields
Each document has metadata associated with it, such as the _index
, mapping _type
, and _id
metadata fields. The behavior of some of these metadata fields can be customized when a mapping type is created.
Identity metadata fields
The index to which the document belongs. | |
The document’s mapping type. | |
The document’s ID. |
Document source metadata fields
The original JSON representing the body of the document.
The size of the _source
field in bytes, provided by the mapper-size
plugin.
Indexing metadata fields
All fields in the document which contain non-null values.
All fields in the document that have been ignored at index time because of ignore_malformed
.
Routing metadata field
A custom routing value which routes a document to a particular shard.
Other metadata field
Application specific metadata.
Mapping parameters
The following pages provide detailed explanations of the various mapping parameters that are used by field mappings:
The following mapping parameters are common to some or all field data types:
analyzer
boost
coerce
copy_to
doc_values
dynamic
eager_global_ordinals
enabled
fielddata
fields
format
ignore_above
ignore_malformed
index_options
index_phrases
index_prefixes
index
meta
normalizer
norms
null_value
position_increment_gap
properties
search_analyzer
similarity
store
term_vector