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
     }
   } ]
}





本文转自 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可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
15天前
|
存储 人工智能 自然语言处理
Elasticsearch Inference API增加对阿里云AI的支持
本文将介绍如何在 Elasticsearch 中设置和使用阿里云的文本生成、重排序、稀疏向量和稠密向量服务,提升搜索相关性。
61 14
Elasticsearch Inference API增加对阿里云AI的支持
|
2月前
|
API
5-12|etcd api常用操作
5-12|etcd api常用操作
|
4月前
|
存储 SQL 自然语言处理
Elasticsearch 索引与文档的常用操作总结二:复杂条件查询
Elasticsearch 索引与文档的常用操作总结二:复杂条件查询
158 0
|
4月前
|
JSON API 数据格式
Elasticsearch 索引与文档的常用操作总结一
Elasticsearch 索引与文档的常用操作总结一
49 0
|
5月前
|
人工智能 自然语言处理 搜索推荐
Elasticsearch 开放 inference API 增加了对 Azure OpenAI 嵌入的支持
【6月更文挑战第8天】Elasticsearch 推出开放 inference API,支持 Azure OpenAI 嵌入,强化搜索和数据分析能力。此更新使用户能灵活集成 AI 技术,实现智能精准搜索。Azure OpenAI 的语言理解能力优化了用户查询处理,提升搜索相关性。示例代码显示了如何结合两者处理查询。该创新提升数据检索效率,适用于智能客服和推荐系统,但也带来数据安全和模型准确性等挑战。这标志着搜索和数据分析领域的智能化新阶段,期待更多创新应用。未来,我们需要持续探索和完善,以发挥技术的最大潜力。
47 3
|
5月前
|
存储 缓存 Java
掌握Elasticsearch集群参数查询API
掌握Elasticsearch集群参数查询API
|
6月前
|
存储 自然语言处理 搜索推荐
Elasticsearch 8.10 同义词管理新篇章:引入同义词 API
Elasticsearch 8.10 同义词管理新篇章:引入同义词 API
164 0
|
6月前
|
存储 数据可视化 数据建模
阿里云大佬叮嘱我务必要科普这个 Elasticsearch API
阿里云大佬叮嘱我务必要科普这个 Elasticsearch API
71 0
|
28天前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
96 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
2月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
下一篇
无影云桌面