基础
# 前言
1998年9月4日,Google公司在美国硅谷成立。正如大家所知,它是一家做搜索引擎起家的公司。
一位名叫Doug Cutting
的美国工程师,迷上了搜索引擎。他做了一个用于文本搜索的函数库(姑且理解为软件的功能组件),命名为Lucene。
Lucene是用Java写成的,目标是为各种中小型应用软件加入全文检索功能。因为好用而且开源,非常受程序员们的欢迎。
Lucene 是一套信息检索工具包! jar包! 不包含 搜索引擎系统
包含的:索引结构,读写索引的工具,排序,搜索规则.... 工具类
Lucene 和 ElasticSearch 关系
- ElasticSearch 是基于 Lucene 做了一些封装和增强(我们上手是十分简单!)
# ElasticSearch概述
Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。es也使用
Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTfulAPI来隐藏Lucene的复杂性,从而让全文搜索变得简单。
据国际权威的数据库产品评测机构DB Engines的统计,在2016年1月,ElasticSearch已超过Solr等,成为排名第一的搜索引擎类应用
# ES和Solr的比较
Elasticsearch简介
Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。
它用于全文搜索、结构化搜索、分析以及将这三者混合使用
通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单
Solr简介
Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。
Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化
两者对比
Solr | ES |
---|---|
支持JSON,XML,CS | 仅支持JSON |
安装稍微复杂 | 开箱即用 |
利用Zookeeper进行分布式管理 | 自身带有分布式协调管理功能 |
提供的功能更多 | 更注重核心功能,更多功能以第三方插件提供 |
查询快,更新索引慢 | 建立索引快,查询慢(实时性查询快) |
基于传统搜索应用的有力解决方案 | 新兴的实时搜索 |
比较成熟,用户更多,开发者社区更大 | 相对开发维护者较少,更新太快,学习成本较高 |
# ELK
ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称。市面上也被成为Elastic Stack
Logstash是ELK的中央数据流引擎
用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出到不同目的地:
- 文件
- MQ
- redis
- elasticsearch
- kafka
Kibana
可以将elasticsearch的数据通过友好的页面展示出来,提供实时分析的功能。
市面上很多开发只要提到ELK能够一致说出它是一个日志分析架构技术栈总称。
但实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据分析和收集的场景,日志分析和收集只是更具有代表性。
# ES安装
官网:https://www.elastic.co/ (opens new window)
# windows下:解压即用
- 文件目录
bin 启动文件
config 配置文件
log4j2 日志配置文件
jvm.options java 虚拟机相关的配置
elasticsearch.yml elasticsearch 的配置文件! 默认 9200 端口! 跨域!
lib 相关jar包
logs 日志!
modules 功能模块
plugins 插件!
- 启动,访问9200
# Windows下安装可视化界面
- 需要前端环境,比如nodejs等
- 下载地址:https://github.com/mobz/elasticsearch-head/ (opens new window)
npm install
- 启动,访问9100
npm run start
- 连接测试,发现有一个跨域问题,访问不到ES,那么我们配置ES
http.cors.enabled: true
http.cors.allow-origin: "*"
- 重启ES服务,测试连接
# 安装Kibana
注意,Kibana要和ES的版本一致,否则会出大问题
- 官网:https://www.elastic.co/cn/kibana (opens new window)
- 好消息是解压即可,坏消息是解压要半小时
- 启动测试
- 访问5601,出现了界面
- 汉化:默认是英文版的,但是Kibana有中文版的,只需要配置即可:
zh-CN
- 配置完成之后再次重启,进入5601