1 Elasticsearch的常见概念
索引(Index)
相当于关系型数据库中的database,是一个独立的Lucene实例。
类型(Type)
相当于关系型数据库中的table,一个索引中可以有多个type。
文档(Document)
相当于关系型数据中的row,文档由字段构成,是一个Json对象。
字段(Field)
相当于关系型数据中的column,每个字段都有它对应的类型。
映射(Mapping)
相当于关系型数据中的schema,一个type对应一个mapping。虽然Elasticsearch能根据字段值自动检测字段类型,但大部分时候不是我们想要的类型,此时需要自行配置映射。
集群(Cluster)
由多个Elasticsearch节点组成一个集群,这个集群有相同的clusterName,由Master,Client,Datanode角色组成。
节点(Node)
单个Elasticsearch服务实例称为一个节点。
分片(Shard)
分片有主分片和副分片,一个索引可以切成多个分片,分布到不同节点上。
单个shard的数据量小于<2000w可保证简单where条件查询<1s;一个索引的分片原则,是保证一定的查询响应速度的情况下,尽量减少分片的数目;shard数略小于Node节点数可以获得最好的写入和读取平衡,CPU可控制在60%-70%左右
副本(Replic)
为了提高查询的吞吐量和数据安全性,可以使用分片副本功能,是对主分片的一个精确拷贝。
2 Elasticsearch查询语法
普通查询
term查询
terms查询
match查询
multi_match查询
query_string查询
field查询
ids查询
prefix查询
fuzzy查询
match_all查询
wildcard查询
range查询
过滤查询
exists过滤器
missing过滤器
script过滤器
type过滤器
limit过滤器
ids过滤器
bool、and、or和not过滤器
复合查询
agg聚合
数据排序
sort排序
3 更多参考资料
1、 实时搜索引擎Elasticsearch(3)——查询API的使用
http://blog.youkuaiyun.com/xialei199023/article/details/48227247
2、Elasticsearch: 权威指南 » 基础入门
https://www.elastic.co/guide/cn/elasticsearch/guide/current/getting-started.html
3、Elasticsearch Reference [5.6] » Getting Started » Installation
https://www.elastic.co/guide/en/elasticsearch/reference/5.6/_installation.html