Skip to content

映射基本操作

映射的创建是包含在索引的创建中的,在创建索引的时候指定映射结构。

如果创建索引的时候不指定映射,那么该索引的映射将在插入文档的时候自动创建。

但是自动创建的映射可能不够准确,所以一般都是手动指定映射的结构。

创建

PUT /<INDEX_NAME>
{
    "settings": { ... },
    "mappings": {
        "properties": {
            "<FIELD_NAME>": {
                "type": "<FIELD_TYPE>",
                "analyzer": "<ANALYZER>",
                "index": "<analyzed | not_analyzed | no>",
                "filter": [],
                "null_value": "",
                ...
            },
            ...
        },
        ...
    }
}
在创建索引时,通过 mappings 字段指定文档的结构。

mappings 下有如下字段:

Example

PUT {{host}}/product2 HTTP/1.1
Content-Type: application/json

{
    "settings": {
        "number_of_shards": 1,
        "number_of_replicas": 0
    },
    "mappings": {
        "properties": {
            "title": { "type": "text" },
            "description": { "type": "text" }
        }
    }
}
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-encoding: gzip
content-length: 75

{
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "product2"
}

类型:

  • 字符串类型
    • keyword: 关键词,短字符串,不能 通过分词器分词,整个文本作为一个单位被索引
    • text: 大文本,长字符串,可以 指定分词器,建立倒排索引
  • 数字类型
    • 整型: long, integer, short, byte
    • 浮点型: float, double, half_float, scaled_float
  • 布尔类型: boolean
  • 日期类型: date, date_nanos
  • 范围类型: integer_range, float_range, long_range, double_range, date_range
  • 对象类型: object, 简单的 JSON 对象
  • 嵌套类型: nested,简单的 JSON 数组
  • 地理类型
    • 地理范围类型: geo_shape
    • 地理点类型: geo_point
  • 特殊类型
    • IP 类型: ip, 支持 IPv4 和 IPv6
    • Token: token_count

查看

查看mappings信息:

GET /<INDEX_NAME>/_mappings

Example

GET {{host}}/product2/_mappings HTTP/1.1
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-encoding: gzip
content-length: 97

{
    "product2": {
        "mappings": {
            "properties": {
                "description": {
                    "type": "text"
                },
                "title": {
                    "type": "text"
                }
            }
        }
    }
}

删除

修改