Windows系统下Elasticsearch的安装与配置
目录一、安装ES二、相关配置1、访问配置2、插件配置全文搜索属于最常见的需求,开源的Elasticsearch(以下简称 ES)是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。Elastic 的底层是开源库Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的
目录
全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 ES)是目前全文搜索引擎的首选。
它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。
Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。
关于Es的介绍与优点,本文不再赘述直接进入正题。如想对ES的操作等有一定了解,
推荐大家阅读看完这篇你还学不会Elasticsearch,你打我
一、安装ES
1、点击Download Elasticsearch Free | Get Started Now | Elastic | Elastic到官网进行下载,选择自己所需的适合版本即可。本系列文章使用的ES版本为7.13.2
2、推荐直接下载软件包,msi安装程序目前还处于测试阶段,有比较多的未知问题,需要自己研究。
下载完成之后,将程序解压到自己电脑,打开解压目录,进入bin文件夹,双击elasticsearch即可启动ES服务。(如果启动失败,查看是否是Java环境的问题,但是高版本的ES由于自带jdk,一般不会出现该问题,可按错误提示,自行搜索解决办法)
服务启动成功后,访问localhost:9200,看到如下显示,代表安装成功。
二、相关配置
1、访问配置
由于ES可直接通过http请求访问,所以将9200端口直接暴露在网络当中十分危险,我们需对访问进行限制。
在ES安装目录下,进入config目录,查看elasticsearch.yml配置文件
在配置文件中,修改network.host配置可控制允许访问的地址,由于博主是自己测试,所以设为了允许所有来源访问,如对访问安全有要求,建议配置为具体的IP地址。
除了设置具体的IP允许访问外,我们还可为ES配置密码,要求所有访问9200端口的用户,需先进行身份验证才能使用。
首先,我们在elasticsearch.yml配置文件中,添加如下配置:
#配置网络请求中的相关参数及设置
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
#配置身份验证
xpack.security.enabled: true
然后,关闭我们的ES服务,在bin目录下启动cmd,以如下命令启动
elasticsearch -d
运行上述命令之后,再重启一个cmd窗口,执行一下命令
elasticsearch-setup-passwords interactive
根据提示,完成密码的设置之后,重启ES服务,再访问9200端口,会发现要求进行身份验证。
我们输入刚才设置的密码之后,即可访问
2、插件配置
分词是全文搜索引擎必用的技术,由于ES原生的分词器不支持中文,所以我们需要安装一个中文的分词器。
IK分词器是一款国人开发的相对简单的中文分词器。首先我们访问 IK分词器下载与ES对应版本的中文分词器。将解压后的后的文件夹放入ES根目录下的plugins/ik目录下(ik目录要手动创建),重启ES即可使用。
IK提供了两个分词算法ik_smart和ik_max_word。其中ik_smart为智能最少切分;ik_max_word为最细粒度划分。
- ik_max_word:会将文本做最细粒度的拆分,例如「我是程序员」会被拆分为「我、是、程序员、程序、员」。
- ik_smart:会将文本做最少切分,例如「我是程序员」会被拆分为「我、是、程序员」
分词此有一个不能忽视的问题,那就是各种新词,网络热词不断出现,分词器并不认识这些词。
对于新词的补充,大型的NLP系统会不断扩充自己的词库,其使用的技术较为先进和复杂。IK给入门级的使用选手提供了较为简单的扩展支持。
就比如蓝廋香菇这个网络词语,一般不会在ik的原生词典里,ik在对其进行分词的时候,就不知道这是一个“词汇”。
这时就需要自己补充自己的最新的词语,到ik的词库里面去。首先进入ES根目录中的plugins文件夹下的ik文件夹,进入config目录,创建custom.dic文件,写入蓝瘦香菇。同时打开IKAnalyzer.cfg文件,将新建的custom.dic配置其中,重启ES。
配置文件参考如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">custom.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
在进行了配置之后,分词器在“看到”这个词的时候,就会知道这是一个词汇。
好了,这就是本文的全部内容,如有错误,欢迎指正!
参考文章:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)