Elasticsearch index及数据的基础操作
环境
Elasticsearch 7.10.0
操作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
62PUT index_test
{
"settings": {
"number_of_shards": 6,
"number_of_replicas": 0,
"analysis" : {
"analyzer" : {
"standard_and_english" : {
"type" : "english",
"stopwords" : "_standard_"
}
}
}
},
"mappings": {
"dynamic": "strict",
"properties": {
"name": {
"type": "keyword"
},
"age": {
"type": "integer"
},
"intro": {
"type": "text"
},
"intro_str": {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword"
}
},
"analyzer" : "standard_and_english"
},
"course": {
"type": "nested",
"dynamic": "strict",
"properties": {
"courseName": {
"type": "keyword"
},
"teacherName": {
"type": "keyword"
},
"courseDate": {
"type" : "date",
"format" : "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_second"
},
"courseIntroduction": {
"type": "text",
"index": false
},
"isSuccess": {
"type": "boolean"
}
}
}
}
}
}字段解释
1
2
3
4
5
6
7
8
9
10
11
12
13
14settings设置index基础信息,如分片数和副本数。
number_of_shards 是指索引要做多少个分片,只能在创建索引时指定,后期无法修改。
number_of_replicas 是指每个分片有多少个副本,后期可以动态修改
analysis自定义分词器
mappings设置字段信息
name的keyword数据类型,不进行分词,直接索引
age的integer数据类型,常见的有long, integer, short, byte, double, float, half_float, scaled_float
intro的text数据类型,会分词,然后进行索引
intro_str的text数据类型,用定义好的standard_and_english进行分词,同时查询时,用intro_str.keyword就是keyword类型
course的nested复杂类型,主要有Array、object、nested。nested需要建立对象数组的索引并保持数组中每个对象的独立性,则应使用nested数据类型而不是 object数据类型。在内部,嵌套对象索引阵列作为一个单独的隐藏文档中的每个对象,这意味着每个嵌套的对象可以被独立的查询。
courseDate的date数据类型,设置的结构为yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_second,epoch_second为秒级,传入字符串和时间戳都行
courseIntroduction的index设置为false,不需要索引,默认是存在索引,
isSuccess的boolean,布尔类型1
DELETE index_test
1
2
3
4
5
6
7
8PUT /index_test/_mapping
{
"properties": {
"fields_new": {
"type": "keyword"
}
}
}1
2
3
4
5
6POST / _aliases
{
"actions": [
{"add": {"index": "index_test", "alias": "index_test2"}}
]
}操作数据
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
69POST index_test/_doc/id_1
{
"name": "张三",
"age": 20,
"intro": "我是一名粉刷匠,粉刷本领强",
"intro_str": "The business includes painting walls, touching up paint, cutting bricks",
"course": [
{
"courseName":"论粉刷墙壁的重要性",
"teacherName":"李四",
"courseDate":"2024-01-04",
"courseIntroduction":"墙面粉刷是对空间美学的一种诠释。通过巧妙的色彩搭配和质感处理,可以营造出不同的空间氛围和风格,使得室内空间更加符合人们的审美需求和生活习惯。",
"isSuccess":true
},
{
"courseName": "粉刷的三百六十五种技巧",
"teacherName": "李四",
"courseDate": 1714359588,
"courseIntroduction": "《粉刷的三百六十五种技巧》是一本全面而详尽的粉刷技巧指南,适合从初学者到专业粉刷工的所有读者。这本书将带您深入了解粉刷的各个方面,让您掌握粉刷的艺术,为家庭和工作场所带来焕然一新的面貌。",
"isSuccess": false
}
]
}
POST index_test/_doc/id_2
{
"name": "小明",
"age": 25,
"intro": "打工人",
"intro_str": "Migrant worker",
"course": [
{
"courseName":"打工人必备技巧",
"teacherName":"小亮",
"courseDate":"2024-04-30",
"courseIntroduction":"打工人必备技巧。",
"isSuccess":true
},
{
"courseName": "天选打工人",
"teacherName": "杰克",
"courseDate": 1715138087,
"courseIntroduction": "天选打工人",
"isSuccess": false
}
]
}
POST index_test/_doc/id_3
{
"name": "小A",
"age": 17,
"intro": "打工人",
"intro_str": "Migrant worker",
"course": [
{
"courseName":"打工人必备技巧",
"teacherName":"小亮",
"courseDate":"2024-04-25",
"courseIntroduction":"打工人必备技巧。",
"isSuccess":false
},
{
"courseName": "粉刷的三百六十五种技巧",
"teacherName": "李四",
"courseDate": 1714359588,
"courseIntroduction": "《粉刷的三百六十五种技巧》是一本全面而详尽的粉刷技巧指南,适合从初学者到专业粉刷工的所有读者。这本书将带您深入了解粉刷的各个方面,让您掌握粉刷的艺术,为家庭和工作场所带来焕然一新的面貌。",
"isSuccess": true
}
]
}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
29GET index_test/_doc/id_1
{
"_index" : "index_test",
"_type" : "_doc",
"_id" : "id_1",
"_score" : 1.0,
"_source" : {
"name" : "张三",
"age" : 20,
"intro" : "我是一名粉刷匠,粉刷本领强",
"intro_str" : "The business includes painting walls, touching up paint, cutting bricks",
"course" : [
{
"courseName" : "论粉刷墙壁的重要性",
"teacherName" : "李四",
"courseDate" : "2024-01-04",
"courseIntroduction" : "墙面粉刷是对空间美学的一种诠释。通过巧妙的色彩搭配和质感处理,可以营造出不同的空间氛围和风格,使得室内空间更加符合人们的审美需求和生活习惯。",
"isSuccess" : true
},
{
"courseName" : "粉刷的三百六十五种技巧",
"teacherName" : "李四",
"courseDate" : 1714359588,
"courseIntroduction" : "《粉刷的三百六十五种技巧》是一本全面而详尽的粉刷技巧指南,适合从初学者到专业粉刷工的所有读者。这本书将带您深入了解粉刷的各个方面,让您掌握粉刷的艺术,为家庭和工作场所带来焕然一新的面貌。",
"isSuccess" : false
}
]
}
}1
2
3
4
5
6
7
8POST index_test/_delete_by_query
{
"query": {
"match": {
"name": "张三"
}
}
}1
2
3
4
5
6POST index_test/_update/demo1
{
"doc": {
"name":"王五"
}
}
Elasticsearch index及数据的基础操作
https://flyfishs.top/2024/04/28/Elasticsearch index及数据的基础操作/