文章目录
介绍Elastic Search
什么是Elastic Search?
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
ES的功能与特点
(1)分布式的搜索引擎和数据分析引擎
(2)全文检索,结构化检索,数据分析
(3)对海量数据进行近实时的处理
(1)可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也可以运行在单机上,服务小公司
(2)Elasticsearch不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES;lucene(全文检索),商用的数据分析软件(也是有的),分布式数据库(mycat)
(3)对用户而言,是开箱即用的,非常简单,作为中小型的应用,直接3分钟部署一下ES,就可以作为生产环境的系统来使用了,数据量不大,操作不是太复杂
(4)数据库的功能面对很多领域是不够用的(事务,还有各种联机事务型的操作);特殊的功能,比如全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理;Elasticsearch作为传统数据库的一个补充,提供了数据库所不不能提供的很多功能
Elastic Search 的应用场景
国外
(1)维基百科,类似百度百科,全文检索,高亮,搜索推荐
(2)The Guardian(国外新闻网站),用户行为日志(点击,浏览,收藏,评论)+社交网络数据,数据分析
(3)Stack Overflow(国外的程序异常讨论论坛)
(4)GitHub(开源代码管理)
(5)电商网站,检索商品
(6)日志数据分析,logstash采集日志,ES进行复杂的数据分析(ELK技术,elasticsearch+logstash+kibana)
(7)商品价格监控网站
(8)BI系统,商业智能,Business Intelligence。
国内
(9)国内:站内搜索(电商,招聘,门户,等等),IT系统搜索(OA,CRM,ERP,等等),数据分析(ES热门的一个使用场景)
Elastic Search全家桶介绍
Elastic Search:基于Json的分布式搜索和分析引擎
Kibana:可扩展的用户界面,数据分析展示
Logtash:动态数据收集渠道,可扩展插件生态系统
Beats:轻量级采集器采集数据
ELK(Elastic Search+Logtash+Kibana)做日志分析系统
倒排索引原理
举例
正排索引 书本目录
倒排索引 词与页数位置 以及出现频率
Elastic Search 分词器异同
Elastic Search 的默认分词器
各种分词器的特性
推荐IK和清华大学的分词器