Elasticsearch常用操作API

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介:

1. 查询所有的索引

1
2
3
4
[root@Server01 cx] # curl '10.0.0.5:9200/_cat/indices?v'
health status index    pri rep docs.count docs.deleted store.size pri.store.size 
yellow  open    customer   5   1          2            0      6.6kb          6.6kb 
yellow  open    bank       5   1       1000            0    442.1kb        442.1kb


2. 查询bank表中的所有数据

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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
[root@Server01 cx] # curl '10.0.0.5:9200/bank/_search?q=*&pretty'
{
   "took"  : 41,
   "timed_out"  false ,
   "_shards"  : {
     "total"  : 5,
     "successful"  : 5,
     "failed"  : 0
   },
   "hits"  : {
     "total"  : 1000,
     "max_score"  : 1.0,
     "hits"  : [ {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "25" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 25,
         "balance"  : 40540,
         "firstname"  "Virginia" ,
         "lastname"  "Ayala" ,
         "age"  : 39,
         "gender"  "F" ,
         "address"  "171 Putnam Avenue" ,
         "employer"  "Filodyne" ,
         "email"  "virginiaayala@filodyne.com" ,
         "city"  "Nicholson" ,
         "state"  "PA"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "44" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 44,
         "balance"  : 34487,
         "firstname"  "Aurelia" ,
         "lastname"  "Harding" ,
         "age"  : 37,
         "gender"  "M" ,
         "address"  "502 Baycliff Terrace" ,
         "employer"  "Orbalix" ,
         "email"  "aureliaharding@orbalix.com" ,
         "city"  "Yardville" ,
         "state"  "DE"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "99" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 99,
         "balance"  : 47159,
         "firstname"  "Ratliff" ,
         "lastname"  "Heath" ,
         "age"  : 39,
         "gender"  "F" ,
         "address"  "806 Rockwell Place" ,
         "employer"  "Zappix" ,
         "email"  "ratliffheath@zappix.com" ,
         "city"  "Shaft" ,
         "state"  "ND"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "119" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 119,
         "balance"  : 49222,
         "firstname"  "Laverne" ,
         "lastname"  "Johnson" ,
         "age"  : 28,
         "gender"  "F" ,
         "address"  "302 Howard Place" ,
         "employer"  "Senmei" ,
         "email"  "lavernejohnson@senmei.com" ,
         "city"  "Herlong" ,
         "state"  "DC"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "126" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 126,
         "balance"  : 3607,
         "firstname"  "Effie" ,
         "lastname"  "Gates" ,
         "age"  : 39,
         "gender"  "F" ,
         "address"  "620 National Drive" ,
         "employer"  "Digitalus" ,
         "email"  "effiegates@digitalus.com" ,
         "city"  "Blodgett" ,
         "state"  "MD"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "145" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 145,
         "balance"  : 47406,
         "firstname"  "Rowena" ,
         "lastname"  "Wilkinson" ,
         "age"  : 32,
         "gender"  "M" ,
         "address"  "891 Elton Street" ,
         "employer"  "Asimiline" ,
         "email"  "rowenawilkinson@asimiline.com" ,
         "city"  "Ripley" ,
         "state"  "NH"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "183" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 183,
         "balance"  : 14223,
         "firstname"  "Hudson" ,
         "lastname"  "English" ,
         "age"  : 26,
         "gender"  "F" ,
         "address"  "823 Herkimer Place" ,
         "employer"  "Xinware" ,
         "email"  "hudsonenglish@xinware.com" ,
         "city"  "Robbins" ,
         "state"  "ND"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "190" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 190,
         "balance"  : 3150,
         "firstname"  "Blake" ,
         "lastname"  "Davidson" ,
         "age"  : 30,
         "gender"  "F" ,
         "address"  "636 Diamond Street" ,
         "employer"  "Quantasis" ,
         "email"  "blakedavidson@quantasis.com" ,
         "city"  "Crumpler" ,
         "state"  "KY"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "208" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 208,
         "balance"  : 40760,
         "firstname"  "Garcia" ,
         "lastname"  "Hess" ,
         "age"  : 26,
         "gender"  "F" ,
         "address"  "810 Nostrand Avenue" ,
         "employer"  "Quiltigen" ,
         "email"  "garciahess@quiltigen.com" ,
         "city"  "Brooktrails" ,
         "state"  "GA"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "222" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 222,
         "balance"  : 14764,
         "firstname"  "Rachelle" ,
         "lastname"  "Rice" ,
         "age"  : 36,
         "gender"  "M" ,
         "address"  "333 Narrows Avenue" ,
         "employer"  "Enaut" ,
         "email"  "rachellerice@enaut.com" ,
         "city"  "Wright" ,
         "state"  "AZ"
       }
     } ]
   }
}
  • took –  Elasticsearch执行查询的毫秒响应时间

  • timed_out – 是否超时

  • _shards – 查询过的分片,包含成功的分片和失败的分片

  • hits – 搜索结果

  • hits.total – 符合搜索结果的记录数

  • hits.hits – 默认显示前10条搜索结果

  • _score and max_score - ignore these fields for now


3. 另外一种查询全部结果的方法

1
2
3
4
curl -XPOST  '10.0.0.5:9200/bank/_search?pretty'  -d '
{
   "query" : {  "match_all" : {} }
}'


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
75
76
77
78
[root@Server01 cx] # curl -XPOST '10.0.0.5:9200/bank/_search?pretty' -d '
{
   "query" : {  "match_all" : {} },
   "from" : 10,
   "size" : 3,
   "sort" : {  "balance" : {  "order" "desc"  } }
}'
{
   "took"  : 8,
   "timed_out"  false ,
   "_shards"  : {
     "total"  : 5,
     "successful"  : 5,
     "failed"  : 0
   },
   "hits"  : {
     "total"  : 1000,
     "max_score"  : null,
     "hits"  : [ {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "255" ,
       "_score"  : null,
       "_source"  : {
         "account_number"  : 255,
         "balance"  : 49339,
         "firstname"  "Iva" ,
         "lastname"  "Rivers" ,
         "age"  : 38,
         "gender"  "M" ,
         "address"  "470 Rost Place" ,
         "employer"  "Mantrix" ,
         "email"  "ivarivers@mantrix.com" ,
         "city"  "Disautel" ,
         "state"  "MD"
       },
       "sort"  : [ 49339 ]
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "524" ,
       "_score"  : null,
       "_source"  : {
         "account_number"  : 524,
         "balance"  : 49334,
         "firstname"  "Salas" ,
         "lastname"  "Farley" ,
         "age"  : 30,
         "gender"  "F" ,
         "address"  "499 Trucklemans Lane" ,
         "employer"  "Xumonk" ,
         "email"  "salasfarley@xumonk.com" ,
         "city"  "Noxen" ,
         "state"  "AL"
       },
       "sort"  : [ 49334 ]
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "751" ,
       "_score"  : null,
       "_source"  : {
         "account_number"  : 751,
         "balance"  : 49252,
         "firstname"  "Patrick" ,
         "lastname"  "Osborne" ,
         "age"  : 23,
         "gender"  "M" ,
         "address"  "915 Prospect Avenue" ,
         "employer"  "Gynko" ,
         "email"  "patrickosborne@gynko.com" ,
         "city"  "Takilma" ,
         "state"  "MO"
       },
       "sort"  : [ 49252 ]
     } ]
   }
}


5. 添加文档,如果id存在则更新文档

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
[root@Server01 data] # curl -XPUT '10.0.0.5:9200/customer/external/1?pretty' -d '
> { "name" : "John Doe" }'
{
   "_index"  "customer" ,
   "_type"  "external" ,
   "_id"  "1" ,
   "_version"  : 1,
   "_shards"  : {
     "total"  : 2,
     "successful"  : 1,
     "failed"  : 0
   },
   "created"  true
}
[root@Server01 data] # curl -XPUT '10.0.0.5:9200/customer/external/1?pretty' -d '
{ "name" : "Jane Doe" }'
{
   "_index"  "customer" ,
   "_type"  "external" ,
   "_id"  "1" ,
   "_version"  : 2,
   "_shards"  : {
     "total"  : 2,
     "successful"  : 1,
     "failed"  : 0
   },
   "created"  false
}


6. 不指定Id时创建文档,可以发现自动生成一个随机Id

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@Server01 data] # curl -XPOST '10.0.0.5:9200/customer/external?pretty' -d '{"name": "Jane Doe"}'
{
   "_index"  "customer" ,
   "_type"  "external" ,
   "_id"  "AVTh53KZ4Pj5B2ZQ2voK" ,
   "_version"  : 1,
   "_shards"  : {
     "total"  : 2,
     "successful"  : 1,
     "failed"  : 0
   },
   "created"  true
}


7. 修改文档

1
2
3
4
5
6
7
8
9
10
11
12
[root@Server01 data] # curl -XPOST '10.0.0.5:9200/customer/external/2/_update?pretty' -d '{"doc":{"name":"favourite boy","age":18}}'
{
   "_index"  "customer" ,
   "_type"  "external" ,
   "_id"  "2" ,
   "_version"  : 3,
   "_shards"  : {
     "total"  : 2,
     "successful"  : 1,
     "failed"  : 0
   }
}


8. 在开启javascript后,可以使用JS脚本更新文档

1
[root@Server01 data] # curl -XPOST '10.0.0.5:9200/customer/external/2/_update?pretty' -d '{"script":"ctx._source.age+=5"}'


9. 删除文档

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@Server01 data] # curl -XDELETE '10.0.0.5:9200/customer/external/1?pretty'
{
   "found"  true ,
   "_index"  "customer" ,
   "_type"  "external" ,
   "_id"  "1" ,
   "_version"  : 4,
   "_shards"  : {
     "total"  : 2,
     "successful"  : 1,
     "failed"  : 0
   }
}


10. 批量更新文档

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
[root@Server01 data] # curl -XPOST '10.0.0.5:9200/customer/external/_bulk?pretty' -d '
{ "index" :{ "_id" : "1" }}
{ "name" "John Doe"  }
{ "index" :{ "_id" : "2" }}
{ "name" "Jane Doe"  }'
{
   "took"  : 33,
   "errors"  false ,
   "items"  : [ {
     "index"  : {
       "_index"  "customer" ,
       "_type"  "external" ,
       "_id"  "1" ,
       "_version"  : 3,
       "_shards"  : {
         "total"  : 2,
         "successful"  : 1,
         "failed"  : 0
       },
       "status"  : 200
     }
   } ]
}
[root@Server01 data] # curl -XPOST '10.0.0.5:9200/customer/external/_bulk?pretty' -d '
> { "update" :{ "_id" : "1" }}
> { "doc" : {  "name" "John Doe becomes Jane Doe"  } }
> { "delete" :{ "_id" : "2" }}
> '
{
   "took"  : 34,
   "errors"  false ,
   "items"  : [ {
     "update"  : {
       "_index"  "customer" ,
       "_type"  "external" ,
       "_id"  "1" ,
       "_version"  : 4,
       "_shards"  : {
         "total"  : 2,
         "successful"  : 1,
         "failed"  : 0
       },
       "status"  : 200
     }
   }, {
     "delete"  : {
       "_index"  "customer" ,
       "_type"  "external" ,
       "_id"  "2" ,
       "_version"  : 5,
       "_shards"  : {
         "total"  : 2,
         "successful"  : 1,
         "failed"  : 0
       },
       "status"  : 200,
       "found"  true
     }
   } ]
}

1. 查询所有的索引

1
2
3
4
[root@Server01 cx] # curl '10.0.0.5:9200/_cat/indices?v'
health status index    pri rep docs.count docs.deleted store.size pri.store.size 
yellow  open    customer   5   1          2            0      6.6kb          6.6kb 
yellow  open    bank       5   1       1000            0    442.1kb        442.1kb


2. 查询bank表中的所有数据

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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
[root@Server01 cx] # curl '10.0.0.5:9200/bank/_search?q=*&pretty'
{
   "took"  : 41,
   "timed_out"  false ,
   "_shards"  : {
     "total"  : 5,
     "successful"  : 5,
     "failed"  : 0
   },
   "hits"  : {
     "total"  : 1000,
     "max_score"  : 1.0,
     "hits"  : [ {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "25" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 25,
         "balance"  : 40540,
         "firstname"  "Virginia" ,
         "lastname"  "Ayala" ,
         "age"  : 39,
         "gender"  "F" ,
         "address"  "171 Putnam Avenue" ,
         "employer"  "Filodyne" ,
         "email"  "virginiaayala@filodyne.com" ,
         "city"  "Nicholson" ,
         "state"  "PA"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "44" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 44,
         "balance"  : 34487,
         "firstname"  "Aurelia" ,
         "lastname"  "Harding" ,
         "age"  : 37,
         "gender"  "M" ,
         "address"  "502 Baycliff Terrace" ,
         "employer"  "Orbalix" ,
         "email"  "aureliaharding@orbalix.com" ,
         "city"  "Yardville" ,
         "state"  "DE"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "99" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 99,
         "balance"  : 47159,
         "firstname"  "Ratliff" ,
         "lastname"  "Heath" ,
         "age"  : 39,
         "gender"  "F" ,
         "address"  "806 Rockwell Place" ,
         "employer"  "Zappix" ,
         "email"  "ratliffheath@zappix.com" ,
         "city"  "Shaft" ,
         "state"  "ND"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "119" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 119,
         "balance"  : 49222,
         "firstname"  "Laverne" ,
         "lastname"  "Johnson" ,
         "age"  : 28,
         "gender"  "F" ,
         "address"  "302 Howard Place" ,
         "employer"  "Senmei" ,
         "email"  "lavernejohnson@senmei.com" ,
         "city"  "Herlong" ,
         "state"  "DC"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "126" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 126,
         "balance"  : 3607,
         "firstname"  "Effie" ,
         "lastname"  "Gates" ,
         "age"  : 39,
         "gender"  "F" ,
         "address"  "620 National Drive" ,
         "employer"  "Digitalus" ,
         "email"  "effiegates@digitalus.com" ,
         "city"  "Blodgett" ,
         "state"  "MD"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "145" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 145,
         "balance"  : 47406,
         "firstname"  "Rowena" ,
         "lastname"  "Wilkinson" ,
         "age"  : 32,
         "gender"  "M" ,
         "address"  "891 Elton Street" ,
         "employer"  "Asimiline" ,
         "email"  "rowenawilkinson@asimiline.com" ,
         "city"  "Ripley" ,
         "state"  "NH"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "183" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 183,
         "balance"  : 14223,
         "firstname"  "Hudson" ,
         "lastname"  "English" ,
         "age"  : 26,
         "gender"  "F" ,
         "address"  "823 Herkimer Place" ,
         "employer"  "Xinware" ,
         "email"  "hudsonenglish@xinware.com" ,
         "city"  "Robbins" ,
         "state"  "ND"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "190" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 190,
         "balance"  : 3150,
         "firstname"  "Blake" ,
         "lastname"  "Davidson" ,
         "age"  : 30,
         "gender"  "F" ,
         "address"  "636 Diamond Street" ,
         "employer"  "Quantasis" ,
         "email"  "blakedavidson@quantasis.com" ,
         "city"  "Crumpler" ,
         "state"  "KY"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "208" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 208,
         "balance"  : 40760,
         "firstname"  "Garcia" ,
         "lastname"  "Hess" ,
         "age"  : 26,
         "gender"  "F" ,
         "address"  "810 Nostrand Avenue" ,
         "employer"  "Quiltigen" ,
         "email"  "garciahess@quiltigen.com" ,
         "city"  "Brooktrails" ,
         "state"  "GA"
       }
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "222" ,
       "_score"  : 1.0,
       "_source"  : {
         "account_number"  : 222,
         "balance"  : 14764,
         "firstname"  "Rachelle" ,
         "lastname"  "Rice" ,
         "age"  : 36,
         "gender"  "M" ,
         "address"  "333 Narrows Avenue" ,
         "employer"  "Enaut" ,
         "email"  "rachellerice@enaut.com" ,
         "city"  "Wright" ,
         "state"  "AZ"
       }
     } ]
   }
}
  • took –  Elasticsearch执行查询的毫秒响应时间

  • timed_out – 是否超时

  • _shards – 查询过的分片,包含成功的分片和失败的分片

  • hits – 搜索结果

  • hits.total – 符合搜索结果的记录数

  • hits.hits – 默认显示前10条搜索结果

  • _score and max_score - ignore these fields for now


3. 另外一种查询全部结果的方法

1
2
3
4
curl -XPOST  '10.0.0.5:9200/bank/_search?pretty'  -d '
{
   "query" : {  "match_all" : {} }
}'


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
75
76
77
78
[root@Server01 cx] # curl -XPOST '10.0.0.5:9200/bank/_search?pretty' -d '
{
   "query" : {  "match_all" : {} },
   "from" : 10,
   "size" : 3,
   "sort" : {  "balance" : {  "order" "desc"  } }
}'
{
   "took"  : 8,
   "timed_out"  false ,
   "_shards"  : {
     "total"  : 5,
     "successful"  : 5,
     "failed"  : 0
   },
   "hits"  : {
     "total"  : 1000,
     "max_score"  : null,
     "hits"  : [ {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "255" ,
       "_score"  : null,
       "_source"  : {
         "account_number"  : 255,
         "balance"  : 49339,
         "firstname"  "Iva" ,
         "lastname"  "Rivers" ,
         "age"  : 38,
         "gender"  "M" ,
         "address"  "470 Rost Place" ,
         "employer"  "Mantrix" ,
         "email"  "ivarivers@mantrix.com" ,
         "city"  "Disautel" ,
         "state"  "MD"
       },
       "sort"  : [ 49339 ]
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "524" ,
       "_score"  : null,
       "_source"  : {
         "account_number"  : 524,
         "balance"  : 49334,
         "firstname"  "Salas" ,
         "lastname"  "Farley" ,
         "age"  : 30,
         "gender"  "F" ,
         "address"  "499 Trucklemans Lane" ,
         "employer"  "Xumonk" ,
         "email"  "salasfarley@xumonk.com" ,
         "city"  "Noxen" ,
         "state"  "AL"
       },
       "sort"  : [ 49334 ]
     }, {
       "_index"  "bank" ,
       "_type"  "account" ,
       "_id"  "751" ,
       "_score"  : null,
       "_source"  : {
         "account_number"  : 751,
         "balance"  : 49252,
         "firstname"  "Patrick" ,
         "lastname"  "Osborne" ,
         "age"  : 23,
         "gender"  "M" ,
         "address"  "915 Prospect Avenue" ,
         "employer"  "Gynko" ,
         "email"  "patrickosborne@gynko.com" ,
         "city"  "Takilma" ,
         "state"  "MO"
       },
       "sort"  : [ 49252 ]
     } ]
   }
}


5. 添加文档,如果id存在则更新文档

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
[root@Server01 data] # curl -XPUT '10.0.0.5:9200/customer/external/1?pretty' -d '
> { "name" : "John Doe" }'
{
   "_index"  "customer" ,
   "_type"  "external" ,
   "_id"  "1" ,
   "_version"  : 1,
   "_shards"  : {
     "total"  : 2,
     "successful"  : 1,
     "failed"  : 0
   },
   "created"  true
}
[root@Server01 data] # curl -XPUT '10.0.0.5:9200/customer/external/1?pretty' -d '
{ "name" : "Jane Doe" }'
{
   "_index"  "customer" ,
   "_type"  "external" ,
   "_id"  "1" ,
   "_version"  : 2,
   "_shards"  : {
     "total"  : 2,
     "successful"  : 1,
     "failed"  : 0
   },
   "created"  false
}


6. 不指定Id时创建文档,可以发现自动生成一个随机Id

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@Server01 data] # curl -XPOST '10.0.0.5:9200/customer/external?pretty' -d '{"name": "Jane Doe"}'
{
   "_index"  "customer" ,
   "_type"  "external" ,
   "_id"  "AVTh53KZ4Pj5B2ZQ2voK" ,
   "_version"  : 1,
   "_shards"  : {
     "total"  : 2,
     "successful"  : 1,
     "failed"  : 0
   },
   "created"  true
}


7. 修改文档

1
2
3
4
5
6
7
8
9
10
11
12
[root@Server01 data] # curl -XPOST '10.0.0.5:9200/customer/external/2/_update?pretty' -d '{"doc":{"name":"favourite boy","age":18}}'
{
   "_index"  "customer" ,
   "_type"  "external" ,
   "_id"  "2" ,
   "_version"  : 3,
   "_shards"  : {
     "total"  : 2,
     "successful"  : 1,
     "failed"  : 0
   }
}


8. 在开启javascript后,可以使用JS脚本更新文档

1
[root@Server01 data] # curl -XPOST '10.0.0.5:9200/customer/external/2/_update?pretty' -d '{"script":"ctx._source.age+=5"}'


9. 删除文档

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@Server01 data] # curl -XDELETE '10.0.0.5:9200/customer/external/1?pretty'
{
   "found"  true ,
   "_index"  "customer" ,
   "_type"  "external" ,
   "_id"  "1" ,
   "_version"  : 4,
   "_shards"  : {
     "total"  : 2,
     "successful"  : 1,
     "failed"  : 0
   }
}


10. 批量更新文档

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
[root@Server01 data] # curl -XPOST '10.0.0.5:9200/customer/external/_bulk?pretty' -d '
{ "index" :{ "_id" : "1" }}
{ "name" "John Doe"  }
{ "index" :{ "_id" : "2" }}
{ "name" "Jane Doe"  }'
{
   "took"  : 33,
   "errors"  false ,
   "items"  : [ {
     "index"  : {
       "_index"  "customer" ,
       "_type"  "external" ,
       "_id"  "1" ,
       "_version"  : 3,
       "_shards"  : {
         "total"  : 2,
         "successful"  : 1,
         "failed"  : 0
       },
       "status"  : 200
     }
   } ]
}
[root@Server01 data] # curl -XPOST '10.0.0.5:9200/customer/external/_bulk?pretty' -d '
> { "update" :{ "_id" : "1" }}
> { "doc" : {  "name" "John Doe becomes Jane Doe"  } }
> { "delete" :{ "_id" : "2" }}
> '
{
   "took"  : 34,
   "errors"  false ,
   "items"  : [ {
     "update"  : {
       "_index"  "customer" ,
       "_type"  "external" ,
       "_id"  "1" ,
       "_version"  : 4,
       "_shards"  : {
         "total"  : 2,
         "successful"  : 1,
         "failed"  : 0
       },
       "status"  : 200
     }
   }, {
     "delete"  : {
       "_index"  "customer" ,
       "_type"  "external" ,
       "_id"  "2" ,
       "_version"  : 5,
       "_shards"  : {
         "total"  : 2,
         "successful"  : 1,
         "failed"  : 0
       },
       "status"  : 200,
       "found"  true
     }
   } ]
}






本文转自 genuinecx 51CTO博客,原文链接:http://blog.51cto.com/favccxx/1793613,如需转载请自行联系原作者
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
27天前
|
存储 人工智能 自然语言处理
Elasticsearch Inference API增加对阿里云AI的支持
本文将介绍如何在 Elasticsearch 中设置和使用阿里云的文本生成、重排序、稀疏向量和稠密向量服务,提升搜索相关性。
66 14
Elasticsearch Inference API增加对阿里云AI的支持
|
2月前
|
API
5-12|etcd api常用操作
5-12|etcd api常用操作
|
4月前
|
存储 SQL 自然语言处理
Elasticsearch 索引与文档的常用操作总结二:复杂条件查询
Elasticsearch 索引与文档的常用操作总结二:复杂条件查询
169 0
|
4月前
|
JSON API 数据格式
Elasticsearch 索引与文档的常用操作总结一
Elasticsearch 索引与文档的常用操作总结一
49 0
|
5月前
|
人工智能 自然语言处理 搜索推荐
Elasticsearch 开放 inference API 增加了对 Azure OpenAI 嵌入的支持
【6月更文挑战第8天】Elasticsearch 推出开放 inference API,支持 Azure OpenAI 嵌入,强化搜索和数据分析能力。此更新使用户能灵活集成 AI 技术,实现智能精准搜索。Azure OpenAI 的语言理解能力优化了用户查询处理,提升搜索相关性。示例代码显示了如何结合两者处理查询。该创新提升数据检索效率,适用于智能客服和推荐系统,但也带来数据安全和模型准确性等挑战。这标志着搜索和数据分析领域的智能化新阶段,期待更多创新应用。未来,我们需要持续探索和完善,以发挥技术的最大潜力。
48 3
|
5月前
|
存储 缓存 Java
掌握Elasticsearch集群参数查询API
掌握Elasticsearch集群参数查询API
|
6月前
|
存储 自然语言处理 搜索推荐
Elasticsearch 8.10 同义词管理新篇章:引入同义词 API
Elasticsearch 8.10 同义词管理新篇章:引入同义词 API
168 1
|
6月前
|
存储 数据可视化 数据建模
阿里云大佬叮嘱我务必要科普这个 Elasticsearch API
阿里云大佬叮嘱我务必要科普这个 Elasticsearch API
75 0
|
9天前
|
JSON API 数据格式
淘宝 / 天猫官方商品 / 订单订单 API 接口丨商品上传接口对接步骤
要对接淘宝/天猫官方商品或订单API,需先注册淘宝开放平台账号,创建应用获取App Key和App Secret。之后,详细阅读API文档,了解接口功能及权限要求,编写认证、构建请求、发送请求和处理响应的代码。最后,在沙箱环境中测试与调试,确保API调用的正确性和稳定性。
|
21天前
|
供应链 数据挖掘 API
电商API接口介绍——sku接口概述
商品SKU(Stock Keeping Unit)接口是电商API接口中的一种,专门用于获取商品的SKU信息。SKU是库存量单位,用于区分同一商品的不同规格、颜色、尺寸等属性。通过商品SKU接口,开发者可以获取商品的SKU列表、SKU属性、库存数量等详细信息。

热门文章

最新文章

下一篇
无影云桌面