【elasticsearch】索引管理

索引管理

禁止自动创建索引

可以通过在 config/elasticsearch.yml 的每个节点下添加下面的配置:

action.auto_create_index: false
索引的格式

在请求体里面传入设置或类型映射,如下所示:

PUT /goods
{
    "settings": { ... any settings ... },
    "mappings": {
        "properties": { ... any properties ... }
    }
}
  • settings: 用来设置分片,副本等配置信息
  • mappings: 字段映射,类型等(相当于mysql的表结构):
1)type
String类型, 又分两种:
	text:可分词,不可参与聚合
	keyword:不可分词,数据会作为完整字段进行匹配,可以参与聚合
	
Numerical:数值类型 分两类
	基本数据类型:long、interger、short、byte、double、float、half_float
	浮点数的高精度类型:scaled_float需要指定一个精度因子,比如10或100。elasticsearch会把真实值乘以这个因子后存 储,取出时再还原。
	
Date:日期类型 elasticsearch可以对日期格式化为字符串存储,但是建议我们存储为毫秒值,存储为long,节省 空间。

Array:数组类型 进行匹配时,任意一个元素满足,都认为满足 排序时,如果升序则用数组中的最小值来排序,如果降序则用数组中的最大值来排序

Object:对象

2)index
index影响字段的索引情况。
	true:字段会被索引,则可以用来进行搜索。默认值就是true
	false:字段不会被索引,不能用来搜索
index的默认值就是true,也就是说你不进行任何配置,所有字段都会被索引。
但是有些字段是我们不希望被索引的,比如企业的logo图片地址,就需要手动设置index为false。

3)store
是否将数据进行独立存储。 原始的文本会存储在 _source 里面,默认情况下其他提取出来的字段都不是独立存储的,是从 _source 里面提取出来的。当然你也可以独立的存储某个字段,只要设置store:true即可,获取独立存 储的字段要比从_source中解析快得多,但是也会占用更多的空间,所以要根据实际业务需求来设置, 默认为false。

4)analyzer:指定分词器
一般我们处理中文会选择ik分词器 ik_max_word ik_smart
创建索引

我们创建一个goods索引,其中包含两个属性:goods_id,goods_name;

PUT /goods
{
    "settings": {
		"number_of_shards": 1,
		"number_of_replicas": 0
	},
	"mappings":{
        "properties":{
            "goods_id":{
                "type":"long",
                "index":true,
                "store":true
            },
            "goods_name":{
                "type":"text",
                "analyzer":"ik_max_word"
            }
        }
    }
	
}
更新索引

在Elasticsearch中,一旦映射(mapping)被创建,它就是不可变的,你不能更新已有的映射。如果你需要修改映射,你需要重新索引(reindexing)。Elasticsearch提供了_reindexAPI来帮助你完成这个任务。以下是一个基本的重新索引过程的步骤:

  1. 创建一个新的索引,使用新的映射。

  2. 将旧索引中的数据重新索引到新索引中,执行重新索引:

# 使用_reindexAPI将数据从旧索引迁移到新索引。
POST _reindex
{
  "source": {
    "index": "old_index"
  },
  "dest": {
    "index": "new_index"
  }
}

在这个请求中,old_index是旧索引的名称,new_index是新索引的名称。

  1. 当数据被成功迁移后,可以删除旧索引。
关闭索引

一旦索引被关闭,那么这个索引只能显示元数据信息,不能够进行读写操作。

POST /goods/_close
打开索引
POST /goods/_open
删除索引
DELETE /goods
查询索引
GET /goods

返回示例:

{
    "goods": {
        "aliases": {},
        "mappings": {
            "properties": {
                "goods_id": {
                    "type": "long",
                    "store": true
                },
                "goods_name": {
                    "type": "text",
                    "analyzer": "ik_max_word"
                }
            }
        },
        "settings": {
            "index": {
                "routing": {
                    "allocation": {
                        "include": {
                            "_tier_preference": "data_content"
                        }
                    }
                },
                "number_of_shards": "1",
                "provided_name": "goods",
                "creation_date": "1709704342951",
                "number_of_replicas": "0",
                "uuid": "qB9Or-3yT52JdU7FSczT6g",
                "version": {
                    "created": "8500010"
                }
            }
        }
    }
}
查看全部索引
GET /_cat/indices?v

返回示例:

health status index   uuid                   pri rep docs.count docs.deleted store.size pri.store.size dataset.size
yellow open   read_me nXs-sugbTjO5OouSgODYXw   1   1          1            0      5.2kb          5.2kb        5.2kb
green  open   goods   qB9Or-3yT52JdU7FSczT6g   1   0          0            0       249b           249b         249b

health 当前服务器健康状态:green(集群完整) yellow(单点正常、集群不完整) red(单点不正常)
status 索引打开、关闭状态
index 索引名
uuid 索引统一编号
pri 主分片数量
rep 副本数量
docs.count 可用文档数量
docs.deleted 文档删除状态(逻辑删除)
store.size 主分片和副分片整体占空间大小
pri.store.size 主分片占空间大小

停止索引生命周期管理插件
POST /_ilm/stop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值