赞
踩
本文是以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"
- }
- }
- }
- }
-
- }
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
添加数据:注意 这个 “_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
- }
- }
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
创建一个索引,在名称对象数据类型字段下有第一个name字段,还有一个user_id字段。
在“名称对象”字段下添加最后一个字段。
从默认值0更新上面的忽略设置。
9. 查询映射
get mapping API允许检索索引或索引/类型的映射定义。
参考官网:Indices APIs | Elasticsearch Reference [6.2] | Elastic
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。