ElasticSearch

目录结构

  1. py Python API示例
  2. main Java API示例
  3. es.yml Docker Stack配置文件可以直接启动一个容器

特点:

实时:

易用:将Lucene封装成好用Restful API。

集群

  1. 集群角色类似Zookeeper相同的节点中选举一个Master
  2. 并发处理上类似HDFSHBase,主节点只管元数据。
  3. 客户端可以连接任何一个节点请求数据。

分片(shard)

  1. 分片类似Kafka中的PartitionHDFS中的Block存在副本机制。
  2. 分片的所有副本均可读(这点类似Zookeeper
  3. 增加节点集群会自动平衡分片以及其副本(类似KafkaHDFS的重平衡)

这些组件的概念是相似的,道理也是想通的,都可以沉淀出分布式系统的本质。

索引与类型

与关系型数据库对比。索引相当于数据库、类型相当于表。
ES7取消 类型(type)

API

分High Level REST 和 Low Level REST.

官网Java REST Client 和 Java API两种,要用Java REST Client后者已经过期。

Transport Client已经过时8.0彻底删除。

低 minor 版本Client可以和高版本的Server对接。但是高minor版本的Client发的请求,低版本Server可能识别不了。所以这属于向前/向上兼容