Skip to content

ElasticSearch第五篇 ES名词解释

yangyp8110 edited this page Jan 17, 2018 · 1 revision

ES节点

节点 : 一个运行中的 Elasticsearch 实例

集群 : 是由一个或者多个拥有相同 cluster.name 配置的节点组成, 它们共同承担数据和负载的压力。

当有节点加入集群中或者从集群中移除节点时,集群将会重新平均分布所有的数据。

节点客户端(Node client)

节点客户端作为一个非数据节点加入到本地集群中。换句话说,它本身不保存任何数据,但是它知道数据在集群中的哪个节点中,并且可以把请求转发到正确的节点。

传输客户端(Transport client)

轻量级的传输客户端可以可以将请求发送到远程集群。它本身不加入集群,但是它可以将请求转发到集群中的一个节点上。

  • 两个 Java 客户端都是通过 9300 端口并使用本地 Elasticsearch 传输 协议和集群交互。集群中的节点通过端口 9300 彼此通信。如果这个端口没有打开,节点将无法形成一个集群。
  • 所有其他语言可以使用 RESTful API 通过端口 9200 和 Elasticsearch 进行通信
  • 通过curl交互。curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
[root@yyp ~]# curl -XGET 'http://192.168.74.129:9200/_count?pretty' -d '{"query":{"match_all":{}}}'
{
  "count" : 2,
  "_shards" : {
    "total" : 10,
    "successful" : 10,
    "failed" : 0
  }
}
[root@yyp ~]# curl -i -XGET 'http://192.168.74.129:9200/_count?pretty' -d '{"query":{"match_all":{}}}'
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 97

{
  "count" : 2,
  "_shards" : {
    "total" : 10,
    "successful" : 10,
    "failed" : 0
  }
}
[root@yyp ~]# 

名词解释

ES节点(es node) =====》 Db实例(Relational DB)

索引(Index) =====》 数据库(DB)

类型(Types) =====》 表(Tables)

文档(Documents) =====》 行(Rows)

域(Fields) =====》 列(Columns)

  • 索引(名词): 索引实际上是指向一个或者多个物理分片的逻辑命名空间,一个索引类似于传统关系数据库中的一个数据库。
  • 索引(动词): 索引一个文档 就是存储一个文档到一个 索引 (名词)中以便它可以被检索和查询到。这非常类似于 SQL 语句中的 INSERT 关键词,除了文档已存在时新文档会替换就文档情况之外。
  • 分片: 一个 分片 是一个底层的 工作单元 ,它仅保存了 全部数据中的一部分。一个分片可以是 主 分片或者 副本 分片。索引内任意一个文档都归属于一个主分片,所以主分片的数目决定着索引能够保存的最大数据量。一个副本分片只是一个主分片的拷贝。 副本分片作为硬件故障时保护数据不丢失的冗余备份,并为搜索和返回文档等读操作提供服务。

在索引建立的时候就已经确定了主分片数,但是副本分片数可以随时修改。

  • 倒排索引: 关系型数据库通过增加一个 索引 比如一个 B树(B-tree)索引 到指定的列上,以便提升数据检索速度。Elasticsearch 和 Lucene 使用了一个叫做 倒排索引 的结构来达到相同的目的。

默认的,一个文档中的每一个属性都是 被索引 的(有一个倒排索引)和可搜索的。一个没有倒排索引的属性是不能被搜索到的。我们将在 倒排索引 讨论倒排索引的更多细节。

将 HTTP 命令由 PUT 改为 GET 可以用来检索文档,同样的,可以使用 DELETE 命令来删除文档,以及使用 HEAD 指令来检查文档是否存在。如果想更新已存在的文档,只需再次 PUT 。

  • 查询表达式: Elasticsearch 提供一个丰富灵活的查询语言叫做 查询表达式 , 它支持构建更加复杂和健壮的查询。eg:
GET http://host:port/[index]/[type]/_search
'{
    "query" : {
        "match" : {
            "last_name" : "Smith"
        }
    }
}'
Clone this wiki locally