1.ElasticSearch
简介 : 是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。
Elasticsearch官网:https://www.elastic.co/cn/products/elasticsearch
特点:
- 分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)
- Restful风格,一切API都遵循Rest原则,容易上手
- 近实时搜索,数据更新在Elasticsearch中几乎是完全同步的。
版本 : 目前Elasticsearch最新的版本是6.4.1,我们使用这个版本6.2.4
需要JDK1.8及以上
2.了解搜索技术
2.1. 搜索引擎的种类
搜索引擎按照功能通常分为垂直搜索和综合搜索。
1、垂直搜索是指专门针对某一类信息进行搜索。
例如:会搜网 主要做商务搜索的,并且提供商务信息。除此之外还有爱看图标网、职友集等。
2、综合搜索是指对众多信息进行综合性的搜索。
例如:百度、谷歌、必应、搜狗、360搜索等。
2.2 倒排索引
以我的理解就是:我们对数据库原始的数据根据字或词进行索引,创建倒排索引数据区域,记录字或词在文档中出现位置(id列表)。
用户有查询需求时,先访问倒排索引数据区域(下图),得出文档id列表后,通过文档id即可快速,准确的通过上图找到具体的文档内容。
3.Elasticsearch安装
3.1.安装和配置
3.1.1 下载
下载地址:https://www.elastic.co/downloads/past-releases
3.2.2 安装
elasticsearch无需安装,解压即用。双击运行
可以看到绑定了两个端口:
- 9300:java程序访问的端口
- 9200:浏览器、postman访问接口
我们在浏览器中访问:http://127.0.0.1:9200
3.4.安装Head插件
3.4.1.什么是Head
ealsticsearch只是后端提供各种api,那么怎么直观的使用它呢?elasticsearch-head将是一款专门针对于elasticsearch的客户端工具,类似mysql的sqlyog或者navicat
elasticsearch-head配置包,下载地址:https://github.com/mobz/elasticsearch-head
3.4.2.安装
- es5以上版本安装head需要安装node和grunt
第一步:从地址:https://nodejs.org/en/download/ 下载相应系统的msi,双击安装。
第二步:安装完成用cmd进入安装目录执行 node -v可查看版本号
第三步:执行 npm install -g grunt-cli 安装grunt ,安装完成后执行grunt -version查看是否安装成功,会显示安装的版本号
第四步:进入E:\environment2\elasticsearch-head-master文件夹,执行npm install命令
第五步:运行head插件,下面命令二选一
- 命令一:npm run start
- 命令二:grunt server
第六步:访问9100端口
3.4.3.配置运行
第一步:进入es安装目录下的config目录,修改elasticsearch.yml文件.在文件的末尾加入以下代码
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
然后去掉network.host: 192.168.0.1的注释并改为network.host: 0.0.0.0,去掉cluster.name;node.name;http.port的注释(也就是去掉#)
第二步:双击elasticsearch.bat重启es
第三步:在https://github.com/mobz/elasticsearch-head中下载head插件,选择下载zip
第四步:解压到指定文件夹下,D:\environment\elasticsearch-head-master 进入该文件夹,修改D:\environment\elasticsearch-head-master\Gruntfile.js 在对应的位置加上hostname:’*’、