# /
# Index APIs
cat indices API
返回有关群集中索引的高级信息,包括数据流的备份索引。
Request
GET /_cat/indices/<target>
GET /_cat/indices
1
2
3
4
5
6
2
3
4
5
6
Index APIs
索引API用于管理各个索引、索引设置、别名、映射和索引模板。
Index management:
Create index //增 PUT /<index>
Delete index //删 DELETE /<index>
Get index //查 GET /<target>
Index exists
Close index
Open index
Shrink index
Split index
Clone index
Rollover index
Freeze index
Unfreeze index
Resolve index
Mapping management:
Put mapping
Get mapping
Get field mapping
Type exists
Alias management:
Add index alias
Delete index alias
Get index alias
Index alias exists
Update index alias
Index settings:
Update index settings
Get index settings
Analyze
Index templates:
索引模板会自动将设置、映射和别名应用于新索引。它们最常用于为时间序列数据配置滚动索引,以确保每个新索引与前一个索引具有相同的配置。与数据流相关联的索引模板配置其备份索引。有关详细信息,请参见索引模板。
Put index template
Get index template
Delete index template
Put component template
Get component template
Delete component template
Simulate index
Simulate template
Monitoring:
Index stats
Index segments
Index recovery
Index shard stores
Status management:
Clear cache
Refresh
Flush
Synced flush
Force merge
Dangling indices:
List dangling indices
Import dangling index
Delete dangling index
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Document APIs
Document APIs
本节首先简要介绍Elasticsearch的data replication model数据复制模型,然后详细描述以下CRUD API:
Single document APIs
Index //增 PUT /<target>/_doc/<_id>
Index //增 POST /<target>/_doc/
Index //增 PUT /<target>/_create/<_id>
Index //增 POST /<target>/_create/<_id>
Get //查 GET <index>/_doc/<_id>
Get //查 HEAD <index>/_doc/<_id>
Get //查 GET <index>/_source/<_id>
Get //查 HEAD <index>/_source/<_id>
Delete//删 DELETE /<index>/_doc/<_id>
Update//改 POST /<index>/_update/<_id>
Multi-document APIs
Multi get
Bulk
Delete by query
Update by query
Reindex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Multi get (mget) API
GET /_mget
{
"docs": [
{
"_index": "my-index-000001",
"_id": "1"
},
{
"_index": "my-index-000001",
"_id": "2"
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# Bulk API
POST _bulk
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_id" : "2" } }
{ "create" : { "_index" : "test", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_index" : "test"} }
{ "doc" : {"field2" : "value2"} }
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
{
"took": 30,
"errors": false,
"items": [
{
"index": {
"_index": "test",
"_type": "_doc",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"status": 201,
"_seq_no" : 0,
"_primary_term": 1
}
},
{
"delete": {
"_index": "test",
"_type": "_doc",
"_id": "2",
"_version": 1,
"result": "not_found",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"status": 404,
"_seq_no" : 1,
"_primary_term" : 2
}
},
{
"create": {
"_index": "test",
"_type": "_doc",
"_id": "3",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"status": 201,
"_seq_no" : 2,
"_primary_term" : 3
}
},
{
"update": {
"_index": "test",
"_type": "_doc",
"_id": "1",
"_version": 2,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"status": 200,
"_seq_no" : 3,
"_primary_term" : 4
}
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Mapping
# Mapping parameters
Mapping parameters
以下页面提供了字段映射所使用的各种映射参数的详细说明:
以下映射参数对于某些或所有字段数据类型是通用的:
analyzer //分析器
boost //相关度评分权重
coerce
copy_to
doc_values
dynamic
eager_global_ordinals
enabled
fielddata
fields
format
ignore_above
ignore_malformed
index_options
index_phrases
index_prefixes
index
meta
normalizer
norms
null_value
position_increment_gap
properties
search_analyzer
similarity
store
term_vector
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 手动生成mapping(create index.mappings.properties)
Explicit mapping 显示映射
您对数据的了解比Elasticsearch所能猜测的要多,因此,虽然动态映射对入门很有用,但在某个时候,您可能需要指定自己的显式映射。
在创建索引并将字段添加到现有索引时,可以创建字段映射。
使用显式映射创建索引
您可以使用创建索引API来创建具有显式映射的新索引。
PUT /my-index-000001
{
"mappings": {
"properties": {
"age": { "type": "integer" },
"email": { "type": "keyword" },
"name": { "type": "text" }
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 自动生成mapping(create document)
Dynamic mapping 动态映射
Elasticsearch最重要的功能之一是,它试图避开你的方式,让你尽快开始探索你的数据。要为文档编制索引,不必首先创建索引、定义映射类型和定义字段 — 您只需为文档编制索引,索引、类型和字段就会自动活跃起来
1
2
2
Dynamic field mapping
默认情况下,当在文档中找到一个以前看不到的字段时,Elasticsearch会将新字段添加到类型映射中。通过将动态参数设置为false(忽略新字段)或strict(在遇到未知字段时抛出异常),可以在文档和对象级别禁用此行为。
这些是动态检测的唯一字段数据类型。所有其他数据类型必须显式映射。
除了下面列出的选项之外,动态字段映射规则还可以使用dynamic_templates进一步自定义。
PUT my-index-000001/_doc/1
{
"create_date": "2015/09/02"
}
GET my-index-000001/_mapping
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 半自动生成mapping(create index.mappings.dynamic_templates)
Dynamic templates
动态模板允许您定义可应用于动态添加的字段的自定义映射,这些映射基于:
Elasticsearch检测到的数据类型,match_mapping_type。
字段的名称,带有match和unmatch或match_pattern。
字段的完整虚线路径,包括path_match和path_unmatch。
原始字段名称{name}和检测到的数据类型{dynamic_type}模板变量可以在映射规范中用作占位符。
动态字段映射仅在字段包含具体值(非null或空数组)时添加。这意味着,如果在dynamic_template中使用null_value选项,则只有在索引了第一个具有该字段具体值的文档之后才应用该选项。
PUT my-index-000001
{
"mappings": {
"dynamic_templates": [
{
"longs_as_strings": {
"match_mapping_type": "string",
"match": "long_*",
"unmatch": "*_text",
"mapping": {
"type": "long"
}
}
}
]
}
}
PUT my-index-000001/_doc/1
{
"long_num": "5",
"long_text": "foo"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31