ElasticSearch系列之一:初识ES搜索引擎

  今天开始要接触ElasticSearch(如下称ES)搜索引擎,以前只是听过Solr,彻底没听过也没用过,因此这篇文章做为基础入门记录。mysql

一:为何选择ES?

  ElasticSearch是一个创建在全文搜索引擎 Apache Lucene™ 基础上的高可用开源全文检索和分析组件。提供存储服务,搜索服务,大数据准实时分析等。通常用于提供一些提供复杂搜索的应用,基于RESTful web接口。Elasticsearch是用Java开发的,并做为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,可以达到实时搜索,稳定,可靠,快速,安装使用方便。简单的说就是一个提升大量数据搜索能力的搜索引擎。
  可是咱们为何必定要用它呢?Mysql能够添加索引啊,也能够作集群。 mysql的索引若是创建太多,虽然查询数据效率提升了,可是新增和修改将极大的减慢,因此不宜创建太多索引,而ES每个字段均可以是索引,却不会影响更新和修改的操做。web

  • 首先,大多数查询中咱们是有like来作模糊匹配,可是mysql的like并不所有均可以使用到索引,只有XXX%这样才能够用到索引。
  • 其次,mysql的like也不能彻底的模糊匹配,像%瓜菜%搜索并不能搜索出瓜果蔬菜,可是大多数需求是这样的。
  • 再者,查询的结果也不能进行高亮操做,没法确认返回值关键字所在位置。
  • 最后,mysql的搜索结果没法根据匹配度排序,可能致使前面返回的数据并非用户须要的。

二:ES有什么优势呢?

  如今ES已是JAVA界搜索引擎的当红炸仔鸡,愈来愈多的网站使用它。其中包含GithubMozillaSony。国内也有愈来愈多的公司加入这个阵营了。
ES有以下的优势:sql

  • 轻量级。下载ES,直接启动/bin下的start,一个服务的节点就启动了。服务器

  • 天生分布式,极简配置就能够完成分布式。想要将多个节点加入一个集群中,只要在每一个节点中配置相同的集群名,ES节点会自动嗅探其余节点而后加入相同名的集群。出现故障后,会自动排除故障机器,并从新分配压力至有效的其余机器。分布式

  • 分片机制。同一个索引分红多个分片(sharding),分片利于治理,也方便为集群和高可用提供支持学习

  • 高可用。提供复制(replica)机制,一个分片能够设置多个复制,使得某台服务器宕机的状况下,集群仍旧能够照常运行,并会把因为服务器宕机丢失的复制恢复到其它可用节点上。大数据

  • 简单易上手。ES自己带了不少的标准配置,对于新手来讲启动节点,作基本的配置以后(乃至不须要任何配置)就可使用。极大地缩短上手时间和学习时间。在你之后熟悉以后能够作更多的定制化配置。 固然ES还有不少不少的优势,有兴趣能够本身了解了解。网站

    下一节介绍一下ES的几个核心概念。搜索引擎

相关文章
相关标签/搜索