一、简介
ElasticSearch。简称es,开源高扩展的分布式全文搜索引擎。近乎实时存储、检索数据。扩展性好,可以扩展上百台服务器,处理PB级别的数据。java开发,使用Lucene作为核心来实现所有索引和搜索功能,目的是通过简单的Restful Api来影藏Lucene的复杂性,从而让全文搜索变得简单。
二、应用场景
三、对比solr
3.1、solr简介
Apache下顶级开源项目,采用java开发,基于Lucene的全文搜索服务器。提供了比Lucene更为丰富的查询语句,同事实现可配置,可扩展,并对索引,搜索性能进行了优化。
Solr可独立运行,运行在Jetty,Tomcat等Servlet容器中,Solr索引的视线方法简单,用Post方法向Solr服务器发送一个描述Field及其内容的XML文档,Solr根据xml文档添加,删除,更新索引。Solr搜索只需要发送HTTP Get请求,然后对Solr返回Xml,Json等格式的查询结果进行解析,组织页面布局、Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以已查询Solr的配置和运行情况。
Solr基于Lucene开发企业级搜索服务器,实际就是封装了Lucene。对外提供类似WebService的API接口。用户可以通过Http请求。向搜索引擎服务器提交一定格式的文件,生产索引;也可以通过提出查询请求,并得到返回结果。
3.2、Lucene简介
全文检索引擎架构。由Apache软件基金会支持和提供,提供了一个简单却强大的应用程式接口,能够做全文索引好搜寻。是一个成熟的免费开源工具。
3.3、何谓全文搜索引擎
全文搜索引擎分两种:
1、拥有自己的检索程序。俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用。如:Google,Teoma,WiseNut等。
2、租用其他引擎的数据库,并按照自定的格式排列搜索结果。如Lycos引擎。
3.3、ElasticSearch 对比 Solr
当单纯对已有的数据进行搜索,Solr更快;
当试试建立索引时,Solr会产生io阻塞,查询性能较差,ElasticSearch具有明显的优势;
伴随数据量增加,Solr的搜索效率会变的更低,而es没有明显变化。
四、安装使用
4.1、windows环境下载安装
1、下载地址
链接如下:https://www.elastic.co/products/elasticsearch
2、安装
Tips:es使用java开发,lucene作为核心,需要配置好java环境(jdk 1.8以上)。
下载后直接解压即可,目录结构如下:
3、修改配置文件
a、修改config/jvm.option文件
将#-Xms2g #-Xmx2g修改成为: -Xms340m -Xmx340m 否则因为虚拟机内存不够无法启动
b、修改config/elasticsearch.yml文件
elasticsearch-5.6.8configelasticsearch.yml中末尾加入: http.cors.enabled: true http.cors.allow-origin: "*" network.host: 127.0.0.1 目的是使ES支持跨域请求
c、ES版本对应的JDK和你服务器的JDK版本不对处理。
安装ES的过程中,会发现它要求jdk11,但现在开发基本都是用jdk8.
处理办法是修改ES环境文件。
修改内容为:注意对应关系。
4、启动
点击ElasticSearch下的bin目录下的elasticsearch.bat启动,控制台显示的日志如下:
Tips:9300是TCP通信端口,ES集群之间使用TCP进行通讯,9200是HTTP协议端口。
浏览器访问:
5、安装图形化插件
head插件,可以帮助ES实现图形化界面。安装方式分两种:在线安装,本地安装。
elasticsearch-5-*以上版本安装head需要安装node和grunt。
1、下载head插件:https://github.com/mobz/elasticsearch-head。下载后解压即可。
2、下载node.js:https://nodejs.org/en/download/。下载后安装,安装过程略过。
3、将grunt安装位全局命令,Grunt是基于Node.js的项目构建工具
grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,5.x里之后的head插件就是通过grunt启动的。因此需要安装grunt.
记得一定使用管理员身份运行,不然报错说没权限。
cmd种输入命令安装:
npm install -g grunt-cli
访问国外服务器,下载速度较慢,可以切换为淘宝镜像源。
npm install -g cnpm –registry=https://registry.npm.taobao.org 后续使用的时候,只需要把npm xxx 换成 cnpm xxx 即可
检测是否安装策成功:
npm config get registry
Tips:后续使用时需要将npm替换为cnpm。
4、启动head
通过CMD管理员命令进入head插件目录,到输入命令。
>npm install >grunt server
打开浏览器,输入http://localhost:9100即可
五、ES安装windows服务
1.elasticsearch的bin目录下有一个elasticsearch-service.bat
2.cmd 进入bin目录下执行: elasticsearch-service.bat install
查看电脑服务es
elasticsearch-service.bat后面还可以执行这些命令 install: 安装Elasticsearch服务 remove: 删除已安装的Elasticsearch服务(如果启动则停止服务) start: 启动Elasticsearch服务(如果已安装) stop: 停止服务(如果启动) manager:启动GUI来管理已安装的服务
五、小结