A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小刀葛小伦 于 2019-5-6 16:38 编辑

一.前言
Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。
Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的Restful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它:
(1)分布式的实时文件存储,每个字段都被索引并可被搜索。
(2)分布式的实时分析搜索分布式的实时分析搜索引擎。
(3)可以扩展到上百台服务器,处理PB级结构化或非结构化数据。
而且,所有的这些功能被集成到一个服务里面,你的应用可以通过简单的Restful API、各种语言的客户端甚至命令行与之交互。
二.安装
在安装Elasticsearch引擎之前,必须安装ES需要的软件环境,安装Java JDK和配置JAVA_HOME环境变量:
1.首先从Oracle官网下载和安装Java SE开发包:
由于ElasticSearch对JRE的版本是很敏感的,错误的版本,会导致ElasticSearch无法运行,我运行的项目ElasticSearch版本是elasticsearch-2.4.4,所以对应Java SE版本是Java SE 8[Java Platform(JDK)8u121]。但是我们并没有看到对应Java SE版本,那么就得从Java Archive下载合适的版本,具体对应版本号如下所示:
下载并安装Java SE开发包之后,打开Java控制面板,把自动更新选项勾选掉,防止其自动更新,导致后面ES运行报错。具体操作如下所示:
Java SE开发包安装完成之后,需要在服务器上创建JAVA_HOME环境变量
点击“计算机”的属性->高级系统设置(Advanced System Setting)->高级->环境变量(Environment Variables),新建一个用户环境变量 JAVA_HOME,设置变量值是:C:\Program Files\Java\jdk1.8.0_121
注释:在Windows系统中,“%环境变量名%”用法的含义是获取指定环境变量的值,创建JAVA_HOME环境变量的作用,是由于安装ElasticSearch需要引用Java SE开发包。
Java SE开发包安装完成之后,需要在服务器上创建JAVA_HOME环境变量
点击“计算机”的属性->高级系统设置(Advanced System Setting)->高级->环境变量(Environment Variables),新建一个用户环境变量 JAVA_HOME,设置变量值是:C:\Program Files\Java\jdk1.8.0_121
注释:在Windows系统中,“%环境变量名%”用法的含义是获取指定环境变量的值,创建JAVA_HOME环境变量的作用,是由于安装ElasticSearch需要引用Java SE开发包。
2.安装ElasticSearch:
ElasticSearch官网下载中心下载ElasticSearch 2.4.4版本安装包,具体版本号在历史记录里面:

将zip文件解压到C盘,进入 C:\elasticsearch-2.4.4\bin 目录,双击执行 elasticsearch.bat,该脚本文件执行ElasticSearch安装程序,稍等片刻,打开浏览器,输入 http://localhost:9200,显示以下画面,说明ES安装成功。
安装head插件:
head插件是ES的一个可视化管理插件,用来监视ES的状态,并通过head客户端和ES服务进行交互,比如创建映
射、创建索引等,head的项目地址在https://github.com/mobz/elasticsearch-head
从ES6.0开始,head插件支持使得node.js运行。
1、安装node.js
2、下载head并运行
git clone git://github.com/mobz/elasticsearch-head.git cd elasticsearch-head npm install npm run start open
HTTP://本地主机:9100 /
3、运行
打开浏览器调试工具发现报错:
Origin null is not allowed by Access-Control-Allow-Origin.
原因是:head插件作为客户端要连接ES服务(localhost:9200),此时存在跨域问题,elasticsearch默认不允许跨
域访问。
解决方案:
设置elasticsearch允许跨域访问。
在config/elasticsearch.yml 后面增加以下参数:
#开启cors跨域访问支持,默认为false http.cors.enabled: true #跨域访问允许的域名地址,(允许所有域名)以上使
用正则 http.cors.allow-origin: /.*/
注意:将config/elasticsearch.yml另存为utf-8编码格式。
成功连接ES

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马