elasticSearch 安装
elasticsearch 7.10.0 官方文档
安装环境:CentOS7.6 1核2G
预内存占用:1300M 左右
安装 java1.8
yum install java-1.8.0-openjdk.x86_64
默认安装目录:/usr/lib/jvm
- 配置环境变量
vim /etc/profile
让配置立即生效# java # 第一项是 bin目录的上级目录路径 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64/jre export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib
source /etc/profile
- 测试安装
java -version
echo $PATH
检查打印的路径是否存在
安装 elasticsearch
- 下载源码包并解压 约300M
wget -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-linux-x86_64.tar.gz
mv elasticsearch-7.10.0 /usr/local/
- 配置
配置文件在config
下的elasticsearch.yml
# 因只有一个服务器,所以如下配置 node.name: node-1 cluster.initial_master_nodes: ["node-1"] # 填写127.0.0.1或为了方便测试修改为所有ip都可以访问。端口默认9200,可修改如9508。 network.host: 0.0.0.0 http.port: 9508 # 日志与数据保存路径,默认即是如下。这里不做修改。 #path.data: /var/lib/elasticsearch #path.logs: /var/log/elasticsearch
- 出于安全考虑,
es
不允许root
启动,创建用户,并将elasticsearch-7.10.0
文件夹拥有者赋予该用户。groupadd elsearch useradd elsearch -g elsearch
chown -R elsearch:elsearch elasticsearch-7.10.0
- 启动后会报一些环境错误,只需要修改几项配置即可。
切换到上面创建的elsearch
用户启动:
通常会遇见下面三个错误:./bin/elasticsearch
打开一个新的(1)可以创建的文件描述符数量过低 max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536] (2)用户可以创建的线程数太少 max number of threads [1024] for user [leyou] is too low, increase to at least [4096] (3)虚拟内存不足 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
CMD
窗口登陆root
去操作,解决如下:
(1)vim /etc/security/limits.conf
(2)elsearch soft nproc 65535 elsearch hard nproc 65535 elsearch soft nofile 4096 elsearch hard nofile 4096
cd /etc/security/limits.d && vim 20-nproc.conf
(3)elsearch soft nproc 4096 #root soft nproc unlimited
vim /etc/sysctl.conf
# 末尾添加 vm.max_map_count = 262144
sysctl -p
使之生效 - 测试
确保安全组与防火墙开放了对应的端口号。云服务器端口和防火墙端口配置
当控制台出现[node-1] started
说明启动成功,由于刚才配置elasticsearch.yml
的时候,设置的所有ip
都可以访问,浏览器输入http://yourhost:9508/
验证。
安装中文分词 ik
Github 地址
github.com/medcl/elasticsearch-ana...
注意要按照 Versions
部分与 es版本 的对应关系下载。
- 方法1
按照官方文档的方式./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.0/elasticsearch-analysis-ik-7.10.0.zip
- 方法2
直接下载到plugins
目录下的ik
目录 并解压即可,启动时会自动加载。elasticsearch
默认到plugins/ik
目录下查找配置,默认没有ik
目录,用elsearch
用户手动创建文件夹。cd elasticsearch-7.10.0/plugins && mkdir ik && cd ik
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.0/elasticsearch-analysis-ik-7.10.0.zip
重新启动 es
,出现[INFO ][o.e.p.PluginsService ] [node-1] loaded plugin [analysis-ik]
即加载了插件。
curl -X POST -H "Content-Type:application/json" http://127.0.0.1:9200/_analyze?pretty=true -d '{"text":"小可爱"}'
{
"tokens" : [
{
"token" : "小",
"start_offset" : 0,
"end_offset" : 1,
"type" : "<IDEOGRAPHIC>",
"position" : 0
},
{
"token" : "可",
"start_offset" : 1,
"end_offset" : 2,
"type" : "<IDEOGRAPHIC>",
"position" : 1
},
{
"token" : "爱",
"start_offset" : 2,
"end_offset" : 3,
"type" : "<IDEOGRAPHIC>",
"position" : 2
}
]
}
配置同义词词典
ES
支持加载包含同义词的文件。首先在 elasticsearch/config
目录下新建 analysis
目录(名称自定义),在 analysis
目录下新建 synonym.txt
, 按照官方文档要求编码必须是 utf-8
,通过 vim
编辑器设置文件字符集。
:set fileencoding=utf-8
文件内容如
china,China,中国
以下操作是不需要重建索引的,暂停所有索引
curl -X POST 127.0.0.1:9200/_all/_close
向索引增加配置项,以下为官方代码
curl -X PUT 127.0.0.1:9200/my_index/_settings
{
"settings": {
"index" : {
"analysis" : {
"analyzer" : {
"synonym" : {
"tokenizer" : "whitespace",
"filter" : ["synonym"]
}
},
"filter" : {
"synonym" : {
"type" : "synonym",
"synonyms_path" : "analysis/synonym.txt"
}
}
}
}
}
}
上边格式转为命令行格式
curl -X PUT -H "Content-Type:application/json" 127.0.0.1:9507/hots_index/_settings -d '{"settings": {"index" : {"analysis" : {"analyzer" : {
"synonym" : {"tokenizer" : "whitespace","filter" : ["synonym"]}},"filter" : {"synonym" : {"type" : "synonym","synonyms_path" : "analysis/synonym.txt"}}}}}}'
开启索引
curl -X POST 127.0.0.1:9200/_all/_open
测试
curl -X POST -H "Content-Type:application/json" 127.0.0.1:9200/my_index/_analyze -d '{"analyzer": "synonym","text": "china"}'
END
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: