Elasticsearch的产生
Elasticsearch是基于数据的不断增长,从GB到TB再到PB级别的数据,搜索也成为了一大难题。所以急需一种技术来解决这个难题。
如何解决
以下是解决的方式:
1、存储数据时按有序存储;
2、将数据和索引分离;
3、压缩数据;
Lucene和ES的关系
ES可以通过使用java开发并使用Lucene作为核心开发来实现所有索引和搜索的功能。
ES的目的是通过Restful API 来隐藏Lucene的复杂,从而是搜索变的简单,这就是为什么ES现在用的很多的原因。
ES基本概念
概念 | 说明 |
---|---|
索引库(indices) | indices是index的复数,代表许多的索引, |
类型(type) | 类型是模拟mysql中的table概念,一个索引库下可以有不同类型的索引,比如商品索引,订单索引,其数据格式不同。不过这会导致索引库混乱,因此未来版本中会移除这个概念 |
文档(document) | 存入索引库原始的数据。比如每一条商品信息,就是一个文档 |
字段(field) | 文档中的属性 |
映射配置(mappings) | 字段的数据类型、属性、是否索引、是否存储等特性 |
ES的工作原理
当Elasticsearch的节点启动以后,它会启动多播或者单播的方式,与其他节点建立联系,建立集群。
参考文章:Elasticsearch详解