document:文档,es中的最小数据单元,一个document可以是一条客户数据,一个商品分类数据
index :索引,一个index包含很多document,比如说建立一个 product index 里面可以存放所有的商品document(mysql中的一张表)
type:类型,每个索引都可以有一个或多个type,type是index中的一个逻辑数据分类,一个type下的document,都有相同的filed,比如说博客系统,有一个索引,可以定义用户数据type, 博客数据type,评论数据type(一个index里面可以有多个type,但是大多数情况下就一个)
document:一条document就代表index中每个type的一行.
filed:相当于每个document中的每个字段的值
##常用api
GET /_cat/indices?v
es集群 特性简单说明
集群(cluster):由一个或者多个node构成,通过 cluster_name与其他cluster 进行区分
节点(node):单个es实例
分片:
primary shard:解决水平扩展问题,可以将数据分部到所有节点之上, 在创建index时候指定 shard数,主分片数在第一次创建之后不能再次修改
replica shard :解决数据高可用的问题,分片是主分片的拷贝
分片数的设定影响
分片数如果设置过小.,
后续无法增加加点水平扩容,
单个分片的数据量太大,导致数据重新分配的时候很耗时
分片过大
单个节点上过多的分片,会导致资源浪费
状态:红黄绿
绿:主副 全正常
黄: 主正常,副本不正常
红:主分无法分配
Analysis和Analyzer
Analysis是通过Analyzer来实现的
Analyzer 三部分构成
character filters (html标签过滤等) -> tokenizer(通过规则进行切分) -> token filters(过滤)
mapping和 dynamic mapping
类似数据库中的schema
定义索引中字段name
定义字段的datatype
定义字段以及倒排索引的配置
mapping会把json文档映射成Lucene的扁平格式
一个mapping属于一个index 的type
每个文档都属于一个type
一个type有一个mapping定义
after 7.0 不用在mapping定义指定type的 message