引入
我们建立一个网站或者程序,希望添加搜索功能,发现搜索工作很难:
- 1、我们希望搜索解决方案要高效
- 2、我们希望零配置和完全免费的搜索方案
- 3、我们希望能够简单得通过json和http搜索引擎交互
- 4、我们希望我们的搜索服务器稳定
- 5、我们希望能够简单得将一台服务器扩展到上百台
Elasticsearch
- Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎。
- Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎
- Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
但Elasticsearch也不是唯一的搜索引擎,全文搜索引擎还有很多,还有solr、sphinx
elastic search也是nosql
安装
①安装elasticsearch-rtf,这个就是在elasticsearch的基础上安装了一系列的插件之后的一个发行版本
②elasticsearch的head插件和kibana的安装
安装elasticsearch必须要有jdk
elasticsearch-rtf下载地址 https://github.com/medcl/elasticsearch-rtf
rtf的意思,使用方式,装了那些插件这里都有些
运行就是直接点击bin下的
head插件
head插件是基于浏览器的可视化的,类似于navicat
elasticsearch是nosql数据库,看到他的数据比较困难,所以我们需要一个插件连接到es上,能让我们浏览es上的数据
https://github.com/mobz/elasticsearch-head
运行:
要先运行es,再运行es-head
这里的npm全都有cnpm就可以,更快
kibana的安装
kibana是一个html页面,完成了和elasticsearch的交互,让我们操作es变得很简单
kibana的版本必须和es的版本对应起来
5.1.1的es用kibana5.1.1/5.1.2都行
运行就是直接到bin下 点击kibana.bat运行
elasticsearch中的概念
es节点就是集群中的一台服务器,由一个名字来标识,默认是一个随机的漫画角色的名字
分片:索引划分为多份的能力,允许水平分割,扩展容量,多个分片响应请求
副本:分片的一份或多分,一个节点失败,其他节点顶上
elasticsearch与mysql的对应index下面有type,type下面有documents, documents下面有fields
es就是一个结合了数据存储和数据分析功能的搜索引擎