索引

  • 如果你想禁止自动创建索引可以通过在 config/elasticsearch.yml添加下面的配置
PUT _cluster/settings
{
    "persistent": {
        "action.auto_create_index": "false" 
    }
}

查看所有索引

GET _cat/indices

创建一个索引

PUT zhizu_base_area
{
  "settings": {
    "number_of_shards": 1, #分片数默认1个
    "number_of_replicas": 1 #副本数默认1个
  }
}

查看索引是否存在

HEAD zhizu_base_area

# 存在
200 - OK

# 不存在
{"statusCode":404,"error":"Not Found","message":"404 - Not Found"}

修改索引

# 更新副本
PUT zhizu_base_area/_settings
{
  "number_of_replicas": 2
}

删除索引

DELETE zhizu_base_area

Mapping介绍

Elasticsearch的Mapping,定义了索引的结构,相当于数据库的数据类型。

数据类型

属性名字 说明
text 用于全文索引,该类型的字段将通过分词器进行分词,最终用于构建索引
keyword 不分词
long 有符号64-bit integer:-2^63 ~ 2^63 - 1
integer 有符号32-bit integer,-2^31 ~ 2^31 - 1
short 有符号16-bit integer,-32768 ~ 32767
byte 有符号8-bit integer,-128 ~ 127
double 64-bit IEEE 754 浮点数
float 32-bit IEEE 754 浮点数
half_float 16-bit IEEE 754 浮点数
boolean true,false
date 时间
binary 该类型的字段把值当做经过 base64 编码的字符串,默认不存储,且不可搜索

修改已存在的数据类型方案

  • 假如现在有索引zhizu_base_area
  • 查看索引的数据类型
GET zhizu_base_area/_mapping

{
  "zhizu_base_area" : {
    "mappings" : {
      "dynamic" : "false",
      "properties" : {
        "cityCode" : {
          "type" : "integer"
        },
        "cityName" : {
          "type" : "keyword"
        },
        "name" : {
          "type" : "text"
        }
      }
    }
  }
}

# 创建一个新的索引

PUT zhizu_base_area_new
{
  "mappings": {
  "properties": {
    "cityCode" : {
          "type" : "integer"
        },
        "cityName" : {
          "type" : "text"
        },
        "name" : {
          "type" : "text"
        }
  }
  }
}

#将zhizu_base_area数据reindex到zhizu_base_area_new

POST /_reindex
{
  "source": {
    "index": "zhizu_base_area"
  },
  "dest": {
    "index": "zhizu_base_area_new"
  }
}

#查看新的索引

GET zhizu_base_area_new/_mapping

{
  "zhizu_base_area_new" : {
    "mappings" : {
      "properties" : {
        "cityCode" : {
          "type" : "integer"
        },
        "cityName" : {
          "type" : "text"
        },
        "name" : {
          "type" : "text"
        }
      }
    }
  }
}

鲁ICP备16017569号-2