Elasticsearch入门 - 功能特色介绍

开篇

上一篇主要简单介绍了下 Elasticsearch(简称: ES) 的官方概念,本篇主要介绍 Elasticsearch 的主要功能特色以及使用场景,文章内容是总结多篇文章及视频资料整理出来。mysql

功能

1. 分布式的搜索引擎和数据分析引擎

搜索引擎: 好比咱们经常使用的百度,以及其余网站的站内搜索,文献检索。sql

数据分析: 各大电商网站,好比某宝,某东,他们会分析最近几天某种商品销量排名,还有一些新闻网站,最近 1 个月访问量排名前 3 的新闻版块是哪些。数据库

2. 全文检索,结构化检索,数据分析

咱们能够拿 mysql 数据库举例来讲明这些概念服务器

  • 全文检索:我想搜索商品名称包含牙膏的商品,elasticsearch

    select * from products where product_name like "%牙膏%"
  • 结构化检索:我想搜索商品分类为日化用品的商品都有哪些。分布式

    select * from products where category_id='日化用品'
  • 部分匹配、自动完成、搜索纠错、搜索推荐网站

  • 数据分析:咱们分析每个商品分类下有多少个商品搜索引擎

    select category_id,count(*) from products group by category_id

3. 对海量数据进行近实时的处理

  • 分布式日志

    Elasticsearch 会自动将海量数据分散到多台服务器上去存储和检索海量数据的处理code

  • 近实时

    在对数据进行搜索和分析时花费的时间为秒级别

而 lucene 只能在单台服务器上使用,最多只能处理单台服务器能够处理的数据量。

使用场景

  • GitHub

    搜索上千亿行代码

  • 电商网站

    检索商品

  • 日志数据分析

    ELK (elasticsearch+logstash+kibana)日志采集,logstash采集日志,ES进行复杂的数据分析

  • 其余 站内搜索(电商,招聘网站,门户网站)

特色

(1)能够做为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也能够运行在单机上,服务小公司

(2)Elasticsearch不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一块儿,才造成了独一无二的ES;lucene(全文检索),商用的数据分析软件(也是有的),分布式数据库(mycat)

(3)对用户而言,是开箱即用的,很是简单,做为中小型的应用,直接3分钟部署一下ES,就能够做为生产环境的系统来使用了,数据量不大,操做不是太复杂

(4)数据库的功能面对不少领域是不够用的(事务,还有各类联机事务型的操做);特殊的功能,好比全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理;Elasticsearch做为传统数据库的一个补充,提供了数据库所不不能提供的不少功能

相关文章
相关标签/搜索