目录
一、安装ES
二、相关配置
1、访问配置
2、插件配置
全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 ES)是目前全文搜索引擎的首选。
它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。
Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。
关于Es的介绍与优点,本文不再赘述直接进入正题。如想对ES的操作等有一定了解,
推荐大家阅读看完这篇你还学不会Elasticsearch,你打我
1、点击Download Elasticsearch Free | Get Started Now | Elastic | Elastic到官网进行下载,选择自己所需的适合版本即可。本系列文章使用的ES版本为7.13.2
2、推荐直接下载软件包,msi安装程序目前还处于测试阶段,有比较多的未知问题,需要自己研究。
下载完成之后,将程序解压到自己电脑,打开解压目录,进入bin文件夹,双击elasticsearch即可启动ES服务。(如果启动失败,查看是否是Java环境的问题,但是高版本的ES由于自带jdk,一般不会出现该问题,可按错误提示,自行搜索解决办法)
服务启动成功后,访问localhost:9200,看到如下显示,代表安装成功。
由于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端口,会发现要求进行身份验证。
我们输入刚才设置的密码之后,即可访问
分词是全文搜索引擎必用的技术,由于ES原生的分词器不支持中文,所以我们需要安装一个中文的分词器。
IK分词器是一款国人开发的相对简单的中文分词器。首先我们访问 IK分词器下载与ES对应版本的中文分词器。将解压后的后的文件夹放入ES根目录下的plugins/ik目录下(ik目录要手动创建),重启ES即可使用。
IK提供了两个分词算法ik_smart和ik_max_word。其中ik_smart为智能最少切分;ik_max_word为最细粒度划分。
分词此有一个不能忽视的问题,那就是各种新词,网络热词不断出现,分词器并不认识这些词。
对于新词的补充,大型的NLP系统会不断扩充自己的词库,其使用的技术较为先进和复杂。IK给入门级的使用选手提供了较为简单的扩展支持。
就比如蓝廋香菇这个网络词语,一般不会在ik的原生词典里,ik在对其进行分词的时候,就不知道这是一个“词汇”。
这时就需要自己补充自己的最新的词语,到ik的词库里面去。首先进入ES根目录中的plugins文件夹下的ik文件夹,进入config目录,创建custom.dic文件,写入蓝瘦香菇。同时打开IKAnalyzer.cfg文件,将新建的custom.dic配置其中,重启ES。
配置文件参考如下:
IK Analyzer 扩展配置
custom.dic
在进行了配置之后,分词器在“看到”这个词的时候,就会知道这是一个词汇。
好了,这就是本文的全部内容,如有错误,欢迎指正!
参考文章:
1、全文搜索引擎 Elasticsearch 入门教程 - 阮一峰的网络日志 (ruanyifeng.com)
2、看完这篇Elasticsearch还不会,你打我 - 简书 (jianshu.com)