【菜鸟小屁的成长日记】之ElasticSearchElasticsearch<入门>篇
2017-01-13 21:33
459 查看
一、Elastic Search的优缺点
Elasticsearch是一个实时分布式搜索和分析引擎。它拥有如下的优点:
1、ElasticSearch是一个实时分布式搜索和分析引擎擅,擅长处理大规模的数据。在面对海量数据时,性能会有显著提升。而这是因为Elasticsearch是面向文档(document
oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。
2、ElasticSearch采用Lucene作为他的库,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
3、ElasticSearch具有很好的横向可扩展性:只需要增加一台服务器,做一点儿配置,启动一下ES进程就可以并入集群;分片机制提供更好的分布性,同一个索引分成多个分片,这保证了文本也可以被索引到;另外Elasticsearch提供复制机制,一个分片可以设置多个复制,使得某台服务器宕机的情况下,集群仍旧可以照常运行,并会把由于服务器宕机丢失的复制恢复到其它可用节点上。
4、在对数据库进行写操作的时候,实例间做下配置即可扩展并发性,可以自动分配的写入机制,无需操心传统db中多主同步的诟病。
5、通过传递JSON(JavaScript Object Notation)的方式,可以在服务器端实现复杂的查询条件,group
by、排序、聚合、在线云分析这些操作都不是问题。甚至可以通过复杂的json实现云计算的功能。
同样ElasticSearch也有如下的缺点:
1、不支持事物操作。
2、由于ElasticSearch时即时的操作,因此具有一定的延时性,官方以前也自己称自己为Near-Realtime(近乎实时性)的。频繁的读写操作需要一定的时间,当然时间很短基本是秒级甚至是毫秒级的。
3、没有像MySQL一样的权限管理机制。
二、Elastic Search的组成
1、cluster(集群):一个集群由多个节点组成,这些节点共同持有整个数据,并一起提供索引和搜索功能。
2、nodes(节点):集群之中的服务器.作为集群的一部分存储数据,并参与集群的索引和搜索功能。
3、index(索引):拥有相似特征的文档的集合。任何一个集群可以定义任意多的索引。
4、type(类型):一个索引之中可以定义一个或多个类型。类型时索引在逻辑上的一个分类(分区)。
5、document(文档):文档时可以被索引的基础信息单元。通常以JSON的格式存储在服务器上。
例如一个可能存在的文档形式:
其中"first_name","last_name","age","about","interests"都是这个文档之中的field,以key—value的形式存储在该document之中。
Elasticsearch是一个实时分布式搜索和分析引擎。它拥有如下的优点:
1、ElasticSearch是一个实时分布式搜索和分析引擎擅,擅长处理大规模的数据。在面对海量数据时,性能会有显著提升。而这是因为Elasticsearch是面向文档(document
oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。
2、ElasticSearch采用Lucene作为他的库,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
3、ElasticSearch具有很好的横向可扩展性:只需要增加一台服务器,做一点儿配置,启动一下ES进程就可以并入集群;分片机制提供更好的分布性,同一个索引分成多个分片,这保证了文本也可以被索引到;另外Elasticsearch提供复制机制,一个分片可以设置多个复制,使得某台服务器宕机的情况下,集群仍旧可以照常运行,并会把由于服务器宕机丢失的复制恢复到其它可用节点上。
4、在对数据库进行写操作的时候,实例间做下配置即可扩展并发性,可以自动分配的写入机制,无需操心传统db中多主同步的诟病。
5、通过传递JSON(JavaScript Object Notation)的方式,可以在服务器端实现复杂的查询条件,group
by、排序、聚合、在线云分析这些操作都不是问题。甚至可以通过复杂的json实现云计算的功能。
同样ElasticSearch也有如下的缺点:
1、不支持事物操作。
2、由于ElasticSearch时即时的操作,因此具有一定的延时性,官方以前也自己称自己为Near-Realtime(近乎实时性)的。频繁的读写操作需要一定的时间,当然时间很短基本是秒级甚至是毫秒级的。
3、没有像MySQL一样的权限管理机制。
二、Elastic Search的组成
1、cluster(集群):一个集群由多个节点组成,这些节点共同持有整个数据,并一起提供索引和搜索功能。
2、nodes(节点):集群之中的服务器.作为集群的一部分存储数据,并参与集群的索引和搜索功能。
3、index(索引):拥有相似特征的文档的集合。任何一个集群可以定义任意多的索引。
4、type(类型):一个索引之中可以定义一个或多个类型。类型时索引在逻辑上的一个分类(分区)。
5、document(文档):文档时可以被索引的基础信息单元。通常以JSON的格式存储在服务器上。
例如一个可能存在的文档形式:
{ "first_name" : "John", "last_name" : "Smith", "age" : 25, "about" : "I love to go rock climbing", "interests": [ "sports", "music" ] }
其中"first_name","last_name","age","about","interests"都是这个文档之中的field,以key—value的形式存储在该document之中。
相关文章推荐
- 【NOIP2014模拟9.9】逆光 (Standard IO)
- Linux 源码编译安装curl
- python2 爬虫爬教务管理,还有验证码识别
- 【寒假任务】洛谷1540 机器翻译
- 蓝桥杯基础题目:2-8
- 创龙TMS320C6748开发板———uPP配置
- 仓促地到了中年
- java中Scanner类nextInt之后用nextLine无法读取输入
- JMeter中BeanShell的实际应用
- Opencv2.4.9源码分析——Cascade Classification(三)
- 一个ListView布局的不断演化
- Maven和Nexus
- TCP/IP工作流5 connect开始
- KNN--用于手写数字识别(机器学习入门笔记)
- maven scope-一览表
- CSS3高级
- 第五天(JSP)
- 使用SCVMM 2012 R2管理Hyper-v群集
- Qt实现显示处理提示界面
- 【jzoj3839】【bzoj4423】【AMPPZ 2013 baj】【Bytehattan】【Babystep】【平面图转对偶图】