本文共 3024 字,大约阅读时间需要 10 分钟。
Elasticsearch 是在 Apache Lucene 上构建的开源 RESTful 分布式搜索和分析引擎。自从 2010 年发布以来,Elasticsearch 已经快速地成为最流行的搜索引擎,常用于日志分析、全文搜索、安全智能、业务分析和运维智能使用案例。
因为他是分布式的,可扩展在多个服务器上;同时它还是实时的, 所以它可以用很快的速度去处理大量级的数据。 它在使用上不像Lucene那么复杂,上手非常简单。它附带了很多非常合理的默认值,这让初学者很好地避免一上手就要面对复杂的理论,它安装好了就可以使用了,用很小的学习成本就可以变得很有生产力。上手简单并不代表它的功能少,随着越学越深入,还可以利用Elasticsearch更多高级的功能,整个引擎可以很灵活地进行配置。你可以轻松地通过客户端或者任何你喜欢的程序语言与Elasticsearch的RESTful API进行交流。Solr 是Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。Solr是高度可扩展的,并提供了分布式搜索和索引复制。 Solr是用Java编写、运行在Servlet容器(如 Apache Tomcat 或Jetty)的一个独立的全文搜索服务器。 Solr采用了 Lucene Java 搜索库为核心的全文索引和搜索。
solor 优点:
缺点也很明显: 那就是建立索引时,搜索效率下降,实时索引搜索效率不高。
ES 跟 solr的比较:
1. 当单纯的对已有数据进行搜索时,Solr更快。 2. 当实时建立索引时, Solr会产生io阻塞,查询性能较差, Elasticsearch具有明显的优势。 3.随着数据量的增加,Solr的搜索效率会变得更低,而Elasticsearch却没有明显的变化。 综上所述,Solr的架构不适合实时搜索的应用。近实时:从写入数据到数据可以被搜索到有一个小延迟(大概1秒)
Cluster(集群)
集群包含多个节点,每个节点构成集群。Node(节点)
节点通常代表一个服务器,默认节点会去加入一个名称为“elasticsearch”的集群,如果直接启动一堆节点,那么它们会自动组成一个elasticsearch集群,当然一个节点也可以组成一个elasticsearch集群。Index(索引-数据库)
索引包含一堆有相似结构的文档数据,比如可以有一个客户索引,商品分类索引,订单索引,索引有一个名称。一个index包含很多document,一个index就代表了一类类似的或者相同的document。Type(类型-表)
每个索引里都可以有一个或多个type,type是index中的一个逻辑数据分类,一个type下的document,都有相同的field,比如博客系统,有一个索引,可以定义用户数据type,博客数据type,评论数据type。.Document(文档-行)
一个document可以是一条客户数据,一条商品分类数据,一条订单数据,通常用JSON数据结构表示,每个index下的type中,都可以去存储多个document。Field(字段-列)
一个document里面有多个field,每个field就是一个数据字段.mapping(映射-约束)
数据如何存放到索引对象上,需要有一个映射配置,包括:数据类型、是否存储、是否分词等。 这样就创建了一个名为blog的Index。Type不用单独创建,在创建Mapping 时指定就可以。Mapping用来定义Document中每个字段的类型,即所使用的 analyzer、是否索引等属性,非常关键等。创建Mapping 的代码示例如下:client.indices.putMapping({ index : 'blog', type : 'article', body : { article: { properties: { id: { type: 'string', analyzer: 'ik', store: 'yes', }, title: { type: 'string', analyzer: 'ik', store: 'no', }, content: { type: 'string', analyzer: 'ik', store: 'yes', } } } }});
关系型数据库(比如Mysql) | 非关系型数据库(Elasticsearch) |
---|---|
数据库Database | 索引Index |
表Table | 类型Type |
数据行Row | 文档Document |
数据列Column | 字段Field |
约束 Schema | 映射Mapping |
转载地址:http://eomen.baihongyu.com/