创建索引
- 创建索引的时候可以指定分片数量和副本数量,分片数量默认是5,副本数量默认是1
请求:
PUT http://127.0.0.1:9200/secisland/
参数:
{ //设置
"settings":{//分片3个,副本2个,总共6个,,如果是一台主机,没有副本数,共3个
"index":{"numbers_of_shards":3,"numbers_of_replicas":2
}
}
}
参数可以简写为:
{
"settings":{"numbers_of_shards":3,"numbers_of_replicas":2}
}
返回值:
{//表示成功
"acknowledged":true
}
后面可以通过update-index-settings API完成对副本数的修改,例如
请求:
PUT http://127.0.0.1:9200/secisland/settings/
参数:
{"numbers_of_replicas":1}
对于es的文档而言,一个文档可以包含一个或者多个字段,每个字段都有自己的类型,es是通过映射把字段和数据类型对应起来的,一个字符串也可以解析为多个值,
每个字段的值都会被添加到倒排索引对应的字段中
创建自定义字段类型的例子如下:
请求:
PUT http://127.0.0.1:9200/secisland
参数:
{
"settings":{"numbers_of_shards":3,"number_of_replicas":2},
"mappings":{"secisland":{ //定义类型中的自定义字段
"properties":{ //字段中的属性
"logType":{
"type":"string",
"index":"not_analyzed" //此处应该是不被分析器分析
}
}
}
}
}
在此例子中,我们创建了一个名为secisland的类型,类型中有一个自定义的字段为logType,类型是string,而且此字段是不被分析器分析的
2. 删除索引
请求:
DELETE http:127.0.0.1:9200/secisland/
上述例子删除了名为secisland的索引,删除索引需要指定索引名或者通配符,删除索引可以使用,或者_all或*删除全部索引
_all或*删除索引时要谨慎操作
可以设置elasticsearch.yml属性action.destructive_requires_name为true,禁止使用_all或者*来删除索引
- 获取索引
请求:
GET http://127.0.0.1:9200/secisland/
此请求会将系统中该索引的全部信息,包括一些默认配置
返回结果过滤:可以过滤返回结果的属性
请求:
GET http://127.0.0.1:9200/secisland/_settings,_mappings
上述例子只会返回settings和mapping的属性。
可配置属性包括:_settings,_mappings,_warmers和_aliases
索引不存在就会报错
"type":"index_not_found_exception"
4.打开/关闭索引
打开/关闭索引可以打开或关闭一个索引,但关闭索引操作,只能显示索引元数据信息,不能进行读写操作
打开关闭索引方式:/{索引名}/_open或者/{索引名}/_close
可以同时打开或关闭多个索引,弱国索引不存在会报错,可以再config/elasticsearch.yml中设置
ignore_unavailable=true
不显示异常
action.destructive.requires.name=true
禁止使用通配符或者_all标识索引
注意:关闭索引会继续占用磁盘空间,而使磁盘空间浪费
禁止关闭索引功能
settingscluster.indices.close.enable=flase //默认是true