ElasticSearch
数据库
数据分析平台
Document APIs
RDBMS | Elastic Search |
---|---|
Database | index |
Table | |
Row | Document |
Column | Field |
Schema | Mapping |
Index | Everything is indexed |
SQL | DSL |
SELECT * FROM table … | GET Index/_doc/doc_name {filter} |
UPDATE table SELECT … | PUT Index/_doc/doc_name {data} |
RMDS(关系型数据库): 事务性 / Join
ElasticSearch: 相关性(Score)/ 高性能全文检索
Index 索引,一类文档的集合
每个索引都有自己的 Mapping 定义,定义文档字段类型(string, number, list, object)
7.0 以前,一个 Index 可以配置多个 Types
6.0 开始,Type 已经被废除
7.0 开始,一个索引只能创建一个 Type - “_doc”
Mapping Type 由 Lucence field 决定,不同 Type 中的相同文档字段会共享同一个 Mapping.
加入我需要删除 A Type 中的 user_name 字段而保留 B Type 中的 user_name 字段,这就会引起歧义。同时也会影响 Lucence 压缩文档的性能
替代解决办法
直接添加Type字段
1 | PUT twitter |
Bulk API
支持在一次 API 调用中,对不同的索引进行操作
集群
节点: 一个 ElasticSearch 实例
Master-eligible nodes
Master Node
集群状态:Cluster Status
Data Node 数据节点
Coordinating Node,处理客户端请求,集群每个节点都起到 Coordinating Node 的作用,应对高并发
分片:一个 Lucence 实例,解决数据水平扩展问题,解决数据高可用问题(读取的吞吐,IO)
倒排索引
正排索引:目录,文档ID到文档内容
倒排索引:索引页,单词到文档ID的索引
https://zh.wikipedia.org/wiki/%E5%80%92%E6%8E%92%E7%B4%A2%E5%BC%95