您的位置:首页 > 其它

ElasticSearch 菜鸟笔记(三)ElasticSearch 常见REST API 操作

2017-01-10 19:36 381 查看

一、前言

ElasticSearch 提供了一套非常强大并且易操作的 REST API 用于我们开发人员进行操作。主要 REST API 能完成以下几项功能:

管理功能

i:检查集群、节点、索引的状态以及相关的统计数据

ii:管理集群、节点、索引数据以及源数据

维护索引

i:基本操作。

提供针对索引的CRUD操作(Create【PUT】, Read【GET】, Update【POST】, and Delete【POST】)

ii:高级操作

以及其他如分页、排序、过滤等高级操作

二、集群管理

1.查看集群状态

GET /_cat/health?v


返回值



从以上的返回值中,我们可以得到一个名为ElasticSearch的集群,共有一个节点,没有索引数据。

ps:Epoch :时间戳 long 类型的

2.查看所有节点状态

`GET /_cat/nodes?v`


三、常见 CRUD 操作

1.新建索引

PUT /hiup?pretty


返回值

{
"acknowledged": true,
"shards_acknowledged": true
}


pretty参数:用来格式化返回值。类似于mysql\G 来格式化输出一样的作用。需要注意的是这个需要的操作是PUT 操作。


2.查看所有索引

GET /_cat/indices?v


这时候再使用这个命令,我们就能查看到所有索引数据。



从以上的返回值中,我们可以看见已经创建一个名为 hiup 尚未分配的索引。

3.创建文档

curl -XPUT 'localhost:9200/hiup/user/2?pretty' -d '{"name":"fu"}'




从以上的返回值,我们可以得到成功创建了一个hiup索引,类型为user,id为 2 。

需要声明的是,当你创建一个文档时,无需再这之前创建一个索引和类型,ElasticSearch会自动根据你的创建信息自动创建相应的索引、类型,直至文档。

4.查看文档

curl -XGET 'localhost:9200/hiup/user/1?pretty'


5.删除文档

curl -XDELETE 'localhost:9200/hiup/user/1?pretty'




从返回值,我们可以发现通过操作我们已经删除了hiup索引中类型为user,id为1的文档。

6.修改文档

1.curl -XPUT 'localhost:9200/hiup/user/2?pretty' -d '{"name":"xiaoming"}'




从返回结构来看,我们可以发现修改了一个huip索引类型为user的文档。

2.curl -XPOST 'localhost:9200/hiup/user/2/_update?pretty&pretty' -d'
{
"doc": { "name": "xiaohong" }
}'




从返回结果来说,这两个操作时一样的。有所不同的是,上一个操作为替换操作,这个为更新操作。

7.批量新增文档

curl -XPOST 'localhost:9200/hiup/user/_bulk?pretty&pretty' -d
'{"index":{"_id":"1"}}
{"name": "zhaowu" }
{"index":{"_id":"2"}}
{"name": "wangwu" }'




8.分页查询

curl -XGET 'localhost:9200/hiup/user/_search?pretty' -d'
{
"query": { "match_all": {} },
"from": 1,
"size": 1
}'




query:匹配所有

from:开始读取索引,从第十条开始读取

size:读取条数,相当于pagesize

9.过滤查询

$ curl -XGET 'localhost:9200/hiup/_search?pretty' -d'
{
"query": {
"bool": {
"must": { "match_all": {} },
"filter": {
"range": {
"age": {
"gte": 0,
"lte": 1
}
}
}
}
}
}'


查询hiup索引过滤age 大于等于0 小于等于1



四、总结

ElasticSearch 是一个很强大 并且很友好的全文检索框架,本文仅仅介绍了针对集群的非常简单的 Restful 形式的 API 操作。这个仅仅是我们学习ElasticSearch的基础,相信本文过后也会激发我们继续深入ElasticSearch的脚步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: