-
Notifications
You must be signed in to change notification settings - Fork 0
ElasticSearch第五篇 ES名词解释
yangyp8110 edited this page Jan 17, 2018
·
1 revision
节点 : 一个运行中的 Elasticsearch 实例
集群 : 是由一个或者多个拥有相同 cluster.name 配置的节点组成, 它们共同承担数据和负载的压力。
当有节点加入集群中或者从集群中移除节点时,集群将会重新平均分布所有的数据。
节点客户端作为一个非数据节点加入到本地集群中。换句话说,它本身不保存任何数据,但是它知道数据在集群中的哪个节点中,并且可以把请求转发到正确的节点。
轻量级的传输客户端可以可以将请求发送到远程集群。它本身不加入集群,但是它可以将请求转发到集群中的一个节点上。
- 两个 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"
}
}
}'