在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://blog.csdn.net/stark_summer/article/details/48813455