需要注意的是,⼀旦字段定义完成,将不能被修改。
PUT lglbc_demo_mapping
{
"settings": {
"number_of_replicas": 1,
"number_of_shards": 3
},
"mappings": {
"properties": {
"default":{
"type": "text"
}
}
}
}
常规字段类型
Text类型
⽤于存储⻓⽂本数据。⽂本字段被分析为词项(terms),以⽀持全⽂搜索。您可以指定不同的分析器来处理不同语⾔或⽂本内容
"text_field": {
"type": "text",
"analyzer": "standard"
}
Keyword类型
⽤于存储短⽂本数据,如标签、关键字等。关键字字段不进⾏分词,整个字段内容作为⼀个关键词被索引。它通常⽤于精确匹配和聚合操作。
"keyword_field": {
"type": "keyword"
}
Numeric类型
⽤于存储数值类型的数据,包括整数和浮点数。
"numeric_field": {
"type": "integer"
}
Date类型
⽤于存储⽇期和时间数据。⽇期字段会被解析为特定的⽇期格式以⽀持⽇期范围查询和排序。如果你传的是⽇期格式,会默认当成UTC时间。
"date_field": {
"type": "date",
"format": "yyyy-MM-dd || epoch_millis"
}
Boolean类型
⽤于存储布尔值(true或false)
"boolean_field": {
"type": "boolean"
}
Binary类型
⽤于存储⼆进制数据,例如图像或⽂件。⼀般不会去⽤
"binary_field": {
"type": "binary"
}
Geo类型
⽤于存储地理位置数据,⽀持点、线和多边形等。
"location_field": {
"type": "geo_point"
}
Object类型
⽤于存储嵌套的JSON对象。您可以在对象内部定义⼦字段及其数据类型。
"object_field": {
"type": "object",
"properties": {
"subfield1": { "type": "text" },
"subfield2": { "type": "integer" }
}
}
nested类型
⽤于存储嵌套的JSON对象。您可以在对象内部定义⼦字段及其数据类型。和Object的区别在于嵌套的对象独⽴存在,利于搜索
"nested_field": {
"type": "nested",
"properties": {
"subfield1": { "type": "text" },
"subfield2": { "type": "integer" }
}
}
数组类型
数组类型⽆需再mapping中使⽤额外的字段进⾏定义。