Elasticsearch -- Create Index

创建索引

这个创建索引指的是手动创建索引,而自动创建索引在索引文档的时候一起看。
最简单的创建索引命令:PUT twitter;这就创建了一个名称为twitter的索引。
索引名的命名规则:

  • 全部小写
  • 不能包含\, /, *, ?, ", <, >, |, (space character), ,, #
  • 在7.0之前可以使用(:), 7.0之后将不能使用
  • 不能以-, _, +开头
  • 不能是. or ..
  • 不能超过255字节
  • 在Kibana中,中文好像不行,可能和浏览器编码有关系,没有验证;用Java rest client中文是可以的。

索引的配置

在创建索引的时候,可以指定索引的配置。

PUT twitter
{
    "settings" : {
        "index" : {
            "number_of_shards" : 3, 
            "number_of_replicas" : 2 
        }
    }
}
在settings中,index那层包裹可以不写,如下:
PUT twitter
{
    "settings" : {
        "number_of_shards" : 3,
        "number_of_replicas" : 2
    }
}

关于Setting的详情

索引的映射(Mapping)

索引的映射,其实是定义索引的结构,和数据库的表结构道理基本一样。如果对于Lucene的Field有一定理解,这里也就容易理解。

PUT test
{
    "settings" : {
        "number_of_shards" : 1
    },
    "mappings" : {
        "_doc" : {
            "properties" : {
                "field1" : { "type" : "text" }
            }
        }
    }
}

关于Mapping的详情

索引别名(Aliases)

给索引名称,再起一个别名(小名),别名和索引名称不能相同;别名在切换索引源的时候比较有用。

PUT test
{
    "aliases" : {
        "alias_1" : {},
        "alias_2" : {
            "filter" : {
                "term" : {"user" : "kimchy" }
            },
            "routing" : "kimchy"
        }
    }
}

不但可以给索引起别名,还可以给路由起别名等,详见

等待激活的分片(Wait For Active Shards)

默认情况下,在创建索引的时候,只要主分片激活,创建索引的请求就算完成,就会有返回结果。要么就返回超时的结果。返回结果格式如下:

{
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "test"
}

acknowledged:索引在集群中是否创建成功。
shards_acknowledged:每个分片组激活必要数量的分片,是否超时。
注意:有可能acknowledgedshards_acknowledged都为false,但是索引依然创建成功;这两个值,只是简单的表明操作是否超时。如果acknowledged=false,这说明用新创建的索引更新集群状态超时,但索引可能很快就被创建了。shards_acknowledged=false;说明激活必要的分片超时,默认只启动主分片。
我们可以通过修改索引设置中的index.write.wait_for_active_shards,来改变必须激活的分片的数量。这个设置也会影响索引写操作设置中的wait_for_active_shards

PUT test
{
    "settings": {
        "index.write.wait_for_active_shards": "2"
    }
}

或者 PUT test?wait_for_active_shards=2 关于wait_for_active_shards详见

转载于:https://my.oschina.net/5icode/blog/2870489

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值