在 Elasticsearch 中创建索引(Index)有多种方式,最常用的是通过 REST API。下面按常见场景给你一个完整说明。
当你向一个不存在的索引写入数据时,Elasticsearch 会自动创建索引。
PUT /test_index/_doc/1
{
"name": "张三",
"age": 25
}
⚠️ 自动创建的索引会使用默认配置(分片、映射等),不利于生产环境控制。
PUT /my_index
默认:
PUT /my_index
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
}
}
说明:
number_of_shards:主分片数(创建后不可修改)number_of_replicas:副本数(可随时修改)PUT /my_index
{
"settings": {
"number_of_shards": 1
},
"mappings": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "text",
"analyzer": "ik_max_word"
},
"age": {
"type": "integer"
},
"created_at": {
"type": "date"
}
}
}
}
需要先安装 ik 分词器插件,然后:
PUT /news
{
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
}
}
}
}
GET /my_index
查看所有索引:
GET /_cat/indices?v
DELETE /my_index
⚠️ 删除索引会清空所有数据,不可恢复。
{
"error": "can't change number_of_shards"
}
✅ 解决:只能重建索引(Reindex)
可新增字段,但不能修改已有字段类型。
settings 和 mappingsPUT /my_index_v1
PUT /my_index/_alias/my_index_alias
如果你愿意,我也可以:
你现在用的是 ES 几.x 版本?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。