Elasticsearch环境搭建详细教程

Elasticsearch环境搭建详细教程,第1张

文章目录
  • 1. 下载 Elasticsearch
  • 2. 配置 Java环境
  • 3. 运行 elasticsearch.bat
  • 4. 安装 node.js
  • 5. 下载并配置 elasticsearch-head
  • 6. 安装 grunt环境
  • 7. 访问 http://localhost:9100/
  • 8. 之后使用 Elasticsearch
  • 9. IK分词器(中文搜索)
  • 10. 简单实践

1. 下载 Elasticsearch

前往官网下载:https://www.elastic.co/cn/downloads/elasticsearch#ga-release
以Windows为例,最新版的直接点这个就行:

注意一下,如果你后续想要搭建中文的搜索,就需要用到 IK分词器,IK分词器的版本要和 Elasticsearch版本对应上,不然到时候会报错的。
(比如现在 Elasticsearch的版本是 8.1.3,而IK分词器的最新版本才到 8.1.2,由于下载版本不对应,当我后面执行elasticsearch.bat的时候就会闪退。)

IK分词器网址:https://github.com/medcl/elasticsearch-analysis-ik
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

上面第一个网址有教IK分词器怎么下载怎么使用,关于如何下载我会在后面讲的,第二个网址是所有版本的IK分词器下载方式。

建议先去第二个网址看一下 IK分词器的最新版本是什么,再决定下哪个版本的 Elasticsearch。注意,IK分词器的版本和 Elasticsearch版本一定要对应。

如果想要下载以前版本的 Elasticsearch,如下图点击就可以了。

这里我就下载8.1.2版本的了,因为 IK分词器最新版本只有 8.1.2。解压后效果如下图所示:

2. 配置 Java环境

如果电脑之前有Java环境的话这步可以忽略,没有的话可以看一下。

ES会根据你电脑里有没有Java环境,即环境变量中有没有JAVA_HOME来自行选择 ES的 Java环境,没有的话就用ES_JAVA_HOME来代替Java环境的路径,这个配置就是下面讲的内容,所以自己电脑之前配过Java环境的可以直接略过这一步。

近几年的Elasticsearch(以下简称ES)中自带了 jdk,我们可以直接用 ES提供的 Java环境。

先进入环境变量,在系统变量中 点击新建,如下图填写,变量名ES_JAVA_HOME,变量值就是解压后 ES中 jdk的路径,编辑完不要忘记点确定,不然就白修改了。

这样 ES需要的Java环境就可以用了。

3. 运行 elasticsearch.bat

...\elasticsearch-8.1.2\bin文件夹中点击 elasticsearch.bat

等待一会儿时间,这是在安装 Elasticsearch。如果执行正常的话恭喜你,可以直接跳到下一步。

那么什么是执行正常的呢?进入网址http://localhost:9200/,如果能打开就是正常的,就像这样:

注意,elasticsearch.bat 要一直处于打开状态,不能把它关了,只要你用Elasticsearch,它就得开着(执行正常的话别关,当然执行不正常的话你关不关都不好使),关了之后就无法进入 http://localhost:9200/ 了

执行不正常可能是以下几种问题:

  1. 执行后最新的几行是[WARN ][o.e.x.s.t.n.SecurityNetty4HttpServerTransport] [DESKTOP-E5MROJA] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/[0:0:0:0:0:0:0:1]:9200, remoteAddress=/[0:0:0:0:0:0:0:1]:62537},就像下图这样
  2. 闪退(执行一会后这个文件自己就关闭了),这个一般就是版本不对应的问题

如何解决第一个问题,即全是[WARN ][o.e.x.s.t.n.SecurityNetty4HttpServerTransport] [DESKTOP-E5MROJA] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/[0:0:0:0:0:0:0:1]:9200, remoteAddress=/[0:0:0:0:0:0:0:1]:62537}

在 config 文件夹下以记事本的形式打开 elasticsearch.yml

找到

xpack.security.enabled: true

xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12

将上面两个 true改成 false即可,保存文件,如下图所示。

这时就可以正常打开 http://localhost:9200/ 了。

elasticsearch.yml 文件还有一个额外要改的地方,在末尾添加:

http.cors.enabled: true 
http.cors.allow-origin: "*"

4. 安装 node.js

请看我的另一篇博文:安装node.js(‘npm‘ 不是内部或外部命令,也不是可运行的程序),里面写的很详细。

5. 下载并配置 elasticsearch-head

前往网址:https://github.com/mobz/elasticsearch-head

下载

解压到 ES的路径下

找到 Gruntfile.js并打开(可以用记事本打开)

在下图位置添加 hostname: '*', ,保存。

cmd中进入 elasticsearch-head-master 所在路径,然后输入npm install -g cnpm --registry=https://registry.npm.taobao.org安装,效果图如下(仅供参考,实际可能不同,能下载完就行)。

6. 安装 grunt环境

在同样路径下输入npm run start,如果出现了下面两图之一的情况,原因是没有安装grunt环境。



cmd中输入npm install grunt --save-dev即可安装。

然后再输入npm run start,如果是下图这样的就说明成功了。

注意,这时这个cmd也是不能关的,同样,只要你用Elasticsearch就得开着这个

7. 访问 http://localhost:9100/

前提条件:

  1. 执行elasticsearch.bat并一直处于打开状态
  2. npm run start的cmd一直处于打开状态

如果访问 http://localhost:9100/ 后如下图所示,那么Elasticsearch的环境就基本搭建成功了。

8. 之后使用 Elasticsearch

上面讲的都是搭建环境的过程,之后如果你想要使用 Elasticsearch的话,按如下步骤 *** 作即可:

  1. 进入文件夹...\elasticsearch-8.1.2\bin,双击elasticsearch.bat文件,且一直处于打开状态
  2. cmd进入...\elasticsearch-8.1.2\elasticsearch-head-master,输入npm run start,且此cmd处于打开状态
  3. 然后就可以正常访问http://localhost:9100/
9. IK分词器(中文搜索)

IK分词器网址:https://github.com/medcl/elasticsearch-analysis-ik
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

第二个网址是所有版本的IK分词器下载方式(上面第一个网址有教IK分词器怎么下载怎么使用,这个我会讲怎么下载,直接进入第二个网址就行了)

进入上面第二个网址,以8.1.2版本为例,下载下图 zip文件。

在 ES的 plugins文件夹下新建文件夹,命名为 ik

将压缩文件elasticsearch-analysis-ik-8.1.2.zip解压到...\elasticsearch-8.1.2\plugins\ik,如图所示

这时我们就可以在 Elasticsearch使用 IK分词器了。

10. 简单实践

使用 python API的简易实践,环境搭建在上面已经详细讲过了,直接用下面的博文代码就可以了。
使用Elasticsearch做一个简易的检索式聊天机器人

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/729171.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存