通过HTTP RESTful API 操作elasticsearch索引

在elasticsearch中,一个文档属于一种类型,而索引中包含各种类型。
可以粗糙简单的用关系型数据对比下:

Relational DB ⇒ Databases ⇒ Tables ⇒ Rows ⇒ Columns 

Elasticsearch ⇒ Indices ⇒ Types ⇒ Documents ⇒ Fields

一个elasticsearch集群中可以包含很多索引(数据库),索引中包含各种类型(表),而这些类型中包含各种文档(行),每个文档又包含各种字段(列)


创建索引:

curl -XPUT 'localhost:9200/customer?pretty'

{
  "acknowledged" : true
}

列出所有索引:

curl 'localhost:9200/_cat/indices?v'

结果:

health status index              pri rep docs.count docs.deleted store.size pri.store.size 
yellow open   .marvel-2015.09.29   1   1      29143            0     47.2mb         47.2mb 
yellow open   .marvel-2015.09.28   1   1      27639            0     43.8mb         43.8mb 
yellow open   customer             5   1          0            0       575b           575b 
yellow open   .marvel-kibana       1   1          2            0     18.7kb         18.7kb

customer索引 有5个主分区,1个副本(默认就一个副本),0个文档。
customer索引 健康状态是“黄色”,这意味着没有分配多个副本,这种情况发生在创建索引使用一个副本。目前我们就运行在一个节点上,不能分配多个副本,但当其他节点加入该集群后,就可以在新加入的节点中有新的副本,此刻健康状态变成“绿色”


添加文档(document):
JSON document: { “name”: “John Doe” }

curl -XPUT 'localhost:9200/customer/external/1?pretty' -d ' { "name": "John Doe" }'

结果:
{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 1,
  "created" : true
}

检索文档:

curl -XGET 'localhost:9200/customer/external/1?pretty'
结果:
{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 1,
  "found" : true,
  "_source":
{
  "name": "John Doe"
}
}

_source:返回完整的JSON内容


删除索引:

curl -XDELETE 'localhost:9200/customer?pretty'
{
  "acknowledged" : true
}

总结:

curl -X<REST Verb> <Node>:<Port>/<Index>/<Type>/<ID>

REST Verb:PUT,GET,DELETE等
Index:相当于关系型数据库中的”数据库”
Type:相当于关系型数据库中的”表”
ID:相当于关系型数据库中的”行”


尊重原创,拒绝转载
http://www.voidcn.com/article/p-effpjtxs-zd.html

相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
公众号推荐
   一个历史类的公众号,欢迎关注
一两拨千金