Elasticsearch文档的CRUD

来源:互联网 发布:ubuntu网卡 编辑:程序博客网 时间:2024/05/29 14:28

索引、类型、文档、字段

  • 索引是ElasticSearch存放数据的地方,可以理解为关系型数据库中的一个数据库。
  • 类型用于区分同一个索引下不同的数据类型,相当于关系型数据库中的表
  • 文档是ElasticSearch中存储的实体,类比关系型数据库,每个文档相当于数据库表中的一行数据。
  • 文档由字段组成,相当于关系数据库中列的属性,不同的是ES的不同文档可以具有不同的字段集合。
    对比关系型数据库:
Relational DB -> Databases -> Tables -> Rows -> ColumnsElasticsearch -> Indices   -> Types  -> Documents -> Fields
  • 1

5.2 创建文档

以博客内容管理为例,索引名为blog,类型为article,新加一个文档:

curl -XPUT http://localhost:9200/blog/article/1 -d '{      "id": "1",      "title": "New version of Elasticsearch released!",      "content": "Version 1.0 released today!",      "priority": 10,      "tags": ["announce", "elasticsearch", "release"]}'

5.3检索文档

http://localhost:9200/blog/article/1?pretty

5.4更新文档

curl -XPOST http://localhost:9200/blog/article/1/_update -d '{  "script": "ctx._source.content = \"new content\""}'

5.5删除文档

curl -XDELETE http://localhost:9200/blog/article/1 
  • 1

六、相关概念


6.1节点与集群

ElasticSearch是一个分布式全文搜索引擎,既可以做为一个独立的搜索服务器工作,也可以使用多台服务器同时运行,这样就构成了一个集群(cluster),集群的每一个服务器称为一个节点(node).

6.2分片

当数据量比较大的时候,受RAM、硬盘容量的限制,同时一个节点的计算能力有限。可以将数据切分,每部分是一个单独的lucene索引,成为分片(shard)。每个分片可以被存储在集群的不同节点上。当需要查询由多个分片构成的索引时,ElasticSearch将查询发送到每个相关的分片,之后将查询结果合并。过程对应用透明,无须知道分片的存在。

6.3副本

副本是对原始分片的一个精确拷贝,原始分片成为主分片。对索引的所有操作都直接作用在主分片上,每个主分片可以有零个或多个副分片。主分片丢失,集群可以将一个副分片提升为主的新分片。

0 0
原创粉丝点击