8索引--具体

[b]1创建索引[/b]
每个索引都会有一些相关配置
PUT twitter
{
"settings" : {
"index" : {
"number_of_shards" : 3,
"number_of_replicas" : 2
}
}
}

如上设置数据节点为3个(默认5个),副本2个(默认1个)。
创建索引配置的时候也可以设置索引内部的数据定义
PUT test
{
"settings" : {
"number_of_shards" : 1
},
"mappings" : {
"type1" : {
"properties" : {
"field1" : { "type" : "text" }
}
}
}
}

一般情况下索引创建在主数据节点开始了之后返回
{
"acknowledged": true,
"shards_acknowledged": true
}

acknowledged代表索引是否成功创建
shards_acknowledged代表是否足够的shard节点开始了

[b]2删除索引[/b]
删除索引
DELETE /twitter
同样也支持根据通配符删除多个

[b]3获取索引[/b]
获取索引信息
GET /twitter

[b]4判断索引是否存在[/b]
HEAD twitter
httpcode404代表不存在,200代表存在

[b]5打开关闭索引api[/b]
我们可以关闭或者开启索引的接口。当索引接口被关闭的时候不能对该索引进行读写操作。
POST /my_index/_close
POST /my_index/_open
当指定的索引不存在的时候回抛出异常

[b]8创建新类型数据定义[/b]
在已有的索引上添加新类型或者对已有类型添加新的字段
PUT twitter 
{
"mappings": {
"tweet": {
"properties": {
"message": {
"type": "text"
}
}
}
}
}

PUT twitter/_mapping/user
{
"properties": {
"name": {
"type": "text"
}
}
}

PUT twitter/_mapping/tweet
{
"properties": {
"user_name": {
"type": "text"
}
}
}

[b]9获取数据定义[/b]
获取某一类型的定义
GET /twitter/_mapping/tweet

获取多个类型的定义
GET /_mapping/tweet,kimchy
GET /_all/_mapping/tweet,book

获取所有定义
GET /_all/_mapping
GET /_mapping



[b]11type是否存在[/b]
查看某个索引下的类型是否存在
HEAD twitter/_mapping/tweet


[b]12索引别名[/b]
可以给索引添加别名,也可以给多个索引添加相同的别名
POST /_aliases
{
"actions" : [
{ "remove" : { "index" : "test1", "alias" : "alias1" } },
{ "add" : { "index" : "test2", "alias" : "alias1" } }
]
}


[b]13修改索引设置[/b]
可以通过http接口动态对索引进行设置。
设置备份为4
curl -XPUT 'localhost:9200/my_index/_settings' -d '
{
"index" : {
"number_of_replicas" : 4
}
}'

修改索引生效时间
curl -XPUT localhost:9200/test/_settings -d '{
"index" : {
"refresh_interval" : "-1"
} }'


[b]14获取索引设置[/b]
获取某个索引的设置
GET /twitter/_settings

其他一些写法
GET /twitter,kimchy/_settings
GET /_all/_settings
GET /log_2013_*/_settings


[b]15分析器[/b]
尝试各种分析器。如使用标准分析器分析一段话
curl -XGET 'localhost:9200/_analyze' -d '
{
"analyzer" : "standard",
"text" : "this is a test"
}'
如果传输的参数是数组,他会当做多值来分析(我没懂啥意思)
curl -XGET 'localhost:9200/_analyze' -d '
{
"analyzer" : "standard",
"text" : ["this is a test", "the second text"]
}'

或者通过指定断词,词过滤器,字符过滤器来自己定义分析器。次过滤器可以使用简介词代替.
curl -XGET 'localhost:9200/_analyze' -d '
{
"tokenizer" : "keyword",
"filter" : ["lowercase"],
"text" : "this is a test"
}'

curl -XGET 'localhost:9200/_analyze' -d '
{
"tokenizer" : "keyword",
"filter" : ["lowercase"],
"char_filter" : ["html_strip"],
"text" : "this is a <b>test</b>"
}'
如果想要更相信的信息,可以添加参数explain参数(默认为false)。
GET _analyze
{
"tokenizer" : "standard",
"filter" : ["snowball"],
"text" : "detailed output",
"explain" : true,
"attributes" : ["keyword"]
}



[b]16索引模板[/b]
用户可以自己定义索引模板(包括设置和定义),之后再使用的时候可以直接使用模板。修改模板不会对已有的创建有修改。例
PUT _template/template_1
{
"template": "te*",
"settings": {
"number_of_shards": 1
},
"mappings": {
"type1": {
"_source": {
"enabled": false
},
"properties": {
"host_name": {
"type": "keyword"
},
"created_at": {
"type": "date",
"format": "EEE MMM dd HH:mm:ss Z YYYY"
}
}
}
}
}

删除模板
DELETE /_template/template_1

获取模板
GET /_template/temp*
GET /_template/template_1,template_2

查看是否存在模板
HEAD _template/template_1


[b]18索引的统计信息[/b]
查看索引的统计信息
GET /index1,index2/_stats


[b]19索引分片[/b]
可以查看索引分片信息,对优化起到一定提示
curl -XGET 'http://localhost:9200/test/_segments'
curl -XGET 'http://localhost:9200/test1,test2/_segments'
curl -XGET 'http://localhost:9200/_segments'

为了调试希望展示更多的信息,可以添加verbose
curl -XGET 'http://localhost:9200/test/_segments?verbose=true'


[b]20索引恢复[/b]
提供索引修复的详细信息。如下会显示索引恢复信息
GET index1,index2/_recovery?human
如果想查看所有的索引恢复信息
GET /_recovery?human


[b]21索引数据保存[/b]
获取数据节点保存信息。默认情况下之展示未分配的数据节点。当集群状态为黄色的时候展示至少有一个未分配的副本节点。当集群状态为红色的时候展示未分配的主节点。
curl -XGET 'http://localhost:9200/test/_shard_stores'
curl -XGET 'http://localhost:9200/test1,test2/_shard_stores'
curl -XGET 'http://localhost:9200/_shard_stores'
也可以通过参数status指定类型。如前面所讲共有三种green,yellow,red
 curl -XGET 'http://localhost:9200/_shard_stores?status=green'


[b]22清理缓存[/b]
清理缓存
POST /twitter/_cache/clear
默认清理所有缓存,也可以指定清理搜搜,数据元信息,请求信息。也可以清理多个索引的缓存信息
POST /kimchy,elasticsearch/_cache/clear
POST /_cache/clear


[b]24刷新[/b]
默认是定时刷新(1秒)。es中的数据默认是存储在内存中的经过1秒后会被写入到文件系统缓存,这样文档就可以被搜索到了(这也是为什么es是近实时的原因)。以下可以强制刷新
POST /twitter/_refresh
也可以多个索引进行刷新
POST /kimchy,elasticsearch/_refresh
POST /_refresh


[b]25合并分片[/b]
合并索引减少分片。合并属于阻塞操作。所有请求都会被阻塞住,直至合并完成。[code="java"]POST /twitter/_forcemerge
也可以传输参数
max_num_segments:代表合并的段数。为了充分合并,可以设置为1.默认检查是否需要合并,如果需要则执行
only_expunge_deletes:是否只对删除的数据进行合并,默认为false。在lucene中。删除操作只是把文档标记为删除,并没有真实删除。
flush在执行玩合并之后是否执行刷新操作。默认为true
也可以对多个索引执行操作
POST /kimchy,elasticsearch/_forcemerge
POST /_forcemerge
[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值