乐者为王

Do one thing, and do it well.

Elasticsearch的RESTful API

CURD的URL格式:

1
http://localhost:9200/<index>/<type>/[<id>]

id是可选的,不提供的话Elasticsearch会自动生成。index和type将信息进行分层,便于管理。可以将index理解为数据库,type理解为数据表。

创建

1
2
3
4
5
# 使用自动生成ID的方式新建纪录
curl -XPOST localhost:9200/<index>/<type> -d '{ "tag" : "bad" }'

# 使用指定的ID新建记录
curl -XPOST localhost:9200/<index>/<type>/3 -d '{ "tag" : "bad" }'

查询

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
# 查询所有的index和type的记录
curl -XGET localhost:9200/_search?pretty

# 查询某个index下所有type的记录
curl -XGET localhost:9200/<index>/_search?pretty

# 查询某个index下某个type下所有的记录
curl -XGET localhost:9200/<index>/<type>/_search?pretty

# 使用参数查询所有的记录
curl -XGET localhost:9200/_search?q=tag:bad&pretty

# 使用参数查询某个index下的所有记录
curl -XGET localhost:9200/<index>/_search?q=tag:bad&pretty

# 使用参数查询某个index下某个type下所有的记录
curl -XGET localhost:9200/<index>/<type>/_search?q=tag:bad&pretty

# 使用JSON参数查询所有的记录,-d代表一个JSON格式的对象
curl -XGET localhost:9200/_search?pretty -d '{ "query" : { "term" : { "tag" : "bad" } } }'

# 使用JSON参数查询某个index下的所有记录
curl -XGET localhost:9200/<index>/_search?pretty -d '{ "query" : { "term" : { "tag" : "bad" } } }'

# 使用JSON参数查询某个index下某个type下所有的记录
curl -XGET localhost:9200/<index>/<type>/_search?pretty -d '{ "query" : { "term" : { "tag" : "bad" } } }'

更新

1
curl -XPUT localhost:9200/<index>/<type>/3 -d '{ "tag" : "good" }'

删除

1
curl -XDELETE localhost:9200/<index>

Comments