深入理解Elasticsearch的索引映射(mapping)
在Elasticsearch中,索引映射(mapping)定义了索引中每个字段的数据类型和它的相关属性。字段类型决定了字段可以存储的数据种类(比如文本、数值、日期等)以及Elasticsearch如何索引和存储这些数据。
以下是一个创建索引并定义映射的示例代码:
PUT /my_index
{
"mappings": {
"properties": {
"id": {
"type": "keyword"
},
"title": {
"type": "text"
},
"timestamp": {
"type": "date"
},
"content": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"price": {
"type": "float"
}
}
}
}
在这个例子中,我们创建了一个名为my_index
的索引,并定义了五个字段的映射:
id
:被定义为keyword
类型,适用于不分词的ID字段。title
:被定义为text
类型,表示文本字段,Elasticsearch会对其进行分词。timestamp
:被定义为date
类型,存储日期数据。content
:同样是text
类型,但我们为它增加了一个额外的子字段keyword
,该字段为keyword
类型,用于不分词的文本搜索。price
:被定义为float
类型,用于存储浮点数。
这段代码演示了如何在创建索引时定义字段的数据类型和复杂属性。这对于创建结构化的数据存储非常有用,并且可以指导Elasticsearch如何索引文档以便快速搜索。
评论已关闭