本文是以ES6.2.4 为例子
1. 创建索引;
默认的分片是5
Default for number_of_shards is 5
默认的副本是1 Default for number_of_replicas is 1 (ie one replica for each primary shard)
{ "settings" : { "index" : { "number_of_shards" : 3, "number_of_replicas" : 2 } } }acknowledged 表示索引是否在群集中成功创建,而shards_acknowledged表示索引中的每个碎片在超时之前是否启动了所需数量的碎片副本。请注意,acknowledged 或shards_acknowledged仍然可能为false,但索引创建成功。这些值只是指示操作是否在超时之前完成。如果确认为false,那么在使用新创建的索引更新集群状态之前,我们就超时了,但它可能很快就会被创建。如果hards_acknowledged为false,则在启动所需数量的shards之前(默认情况下,仅初始值),即使集群状态已成功更新以反映新创建的索引(即Acknowed=true),我们也会超时。
2. 删除索引
DELETE /twitter上面的例子删除了一个名为twitter的索引。需要指定索引或通配符表达式。别名不能用于删除索引。通配符表达式解析为仅匹配具体索引。
delete index API还可以应用于多个索引,可以使用逗号分隔的列表,也可以应用于所有索引(小心!)使用_all或*作为索引。
要禁用允许通过通配符或_all删除索引,请设置action.destructive_requires_name 设置为true。还可以通过群集更新设置api更改此设置。
?3. 查询索引
3. 验证索引是否存在
200 说明存在? 404 说明不存在。? 注意:?
此请求不区分索引和别名,即如果存在具有该名称的别名,也会返回状态代码200
4. 打开和关闭索引??? /{index}/_close and /{index}/_open
?
?5. 收缩索引
收缩索引API允许您将现有索引收缩为具有较少主碎片的新索引。目标索引中请求的主碎片数必须是源索引中碎片数的一个因子。例如,一个包含8个主碎片的索引可以缩小为4、2或1个主碎片,或者一个包含15个主碎片的索引可以缩小为5、3或1个。如果索引中的碎片数是质数,则只能将其收缩为单个主碎片。收缩之前,索引中每个碎片的(主或副本)副本必须存在于同一节点上。
收缩工作如下:
首先,它创建一个新的目标索引,其定义与源索引相同,但主碎片的数量较少。
然后将源索引中的段硬链接到目标索引中。(如果文件系统不支持硬链接,则会将所有段复制到新索引中,这是一个非常耗时的过程。)
最后,它恢复目标索引,就像它是一个刚刚重新打开的封闭索引一样。
准备收缩指数
为了缩小索引,必须将索引标记为只读,并且索引中每个碎片的(主或副本)副本必须重新定位到同一节点,并保持健康状态为绿色。
这两个条件可通过以下要求实现:
首先,它创建一个新的目标索引,其定义与源索引相同,但主碎片的数量较少。
然后将源索引中的段硬链接到目标索引中。(如果文件系统不支持硬链接,则会将所有段复制到新索引中,这是一个非常耗时的过程。)
最后,它恢复目标索引,就像它是一个刚刚重新打开的封闭索引一样。
具体参考官网:?Shrink Index | Elasticsearch Reference [6.2] | Elastic
6. 分割索引:?https://www.elastic.co/guide/en/elasticsearch/reference/6.2/indices-split-index.html
7. 滚动索引:?Rollover Index | Elasticsearch Reference [6.2] | Elastic
当现有索引被认为太大或太旧时,滚动索引API将别名滚动到新索引。
API接受一个别名和一系列条件。别名必须仅指向单个索引。如果索引满足指定的条件,则会创建一个新索引,并将别名切换为指向新索引。
8.
定义字段
?给创建的索引定义字段
http://localhost:9200/twitter/_doc/_mapping?pretty
{ "_doc": { "properties": { "title": { "type": "text" }, "body": { "type": "text" }, "tags": { "type": "keyword" }, "published_on": { "type": "keyword" }, "comments": { "type": "nested", "properties": { "name": { "type": "text" }, "comment": { "type": "text" }, "age": { "type": "short" }, "rating": { "type": "short" }, "commented_on": { "type": "text" } } } } } }添加数据:注意? 这个 “_doc” 类型要和才创建的时候一直,否则会报错
?
给索引添加 字段
字段更新
更新字段映射
通常,无法更新现有字段的映射。这条规则有一些例外。例如:
可以将新属性添加到对象数据类型字段中。
新的多字段可以添加到现有字段中。
可以更新上面的ignore_参数。
PUT my_index { "mappings": { "_doc": { "properties": { "name": { "properties": { "first": { "type": "text" } } }, "user_id": { "type": "keyword" } } } } } PUT my_index/_mapping/_doc { "properties": { "name": { "properties": { "last": { "type": "text" } } }, "user_id": { "type": "keyword", "ignore_above": 100 } } }创建一个索引,在名称对象数据类型字段下有第一个name字段,还有一个user_id字段。 在“名称对象”字段下添加最后一个字段。 从默认值0更新上面的忽略设置。
9. 查询映射
get mapping API允许检索索引或索引/类型的映射定义。
参考官网:Indices APIs | Elasticsearch Reference [6.2] | Elastic
?
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |