ES搜索引擎部署
1.ES默认不允许root用户去运行,所以需要新建一个用户
#创建用户
useradd esuser
#设置密码
#密码需要包含一个字母大写,一个小写,共10位
passwd esuser
#这一步可以暂时不用
#切换用户
su esuser
切换回root账户,不然没法操作
下载安装包 ——> es官网
3.上传压缩包并解压压缩包
tar -zxvf elasticsearch-8.6.2-linux-x86_64.tar.gz
进入elasticsearch下的config文件夹,修改两个配置文件
cd config
#修改配置文件
vi jvm.options
#内存默认设为的1g,看个人情况去更改,我设置成512m
-Xms512m
-Xmx512m
#保存并退出
:wq
#修改另一个配置文件
vi elasticsearch.yml
#默认是被注释的,并且默认有一个集群名
cluster.name: my-application
#这个是后面展示的es的名称
node.name: node-1
#data文件
path.data: /usr/local/es/data
#日志文件
path.logs: /usr/local/es/logs
#绑定的ip:默认只允许本机访问,修改为0.0.0.0后则可以远程访问
network.host: 0.0.0.0
#在哪台主机上发布的
network.publish_host: x.xx.xx.xxx
#集群初始化的主节点
cluster.initial_master_nodes: ["x.xx.xx.xxx"]
#如果是多个的话
#cluster.initial_master_nodes: ["x.xx.xx.xxx","xx.xx.xx.xx"]
#在末尾增加跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
#保存并退出
:wq
进入es根目录,去创建上面的data存放位置和log存放位置。如果上面存储位置不同不用进行这一步
注:我的es路径是 /usr/local/es/elasticsearch-8.6.2
cd /usr/local/es
#创建
mkdir data
mkdir logs
增加配置
vi /etc/security/limits.conf
#最后加上
soft nofile 65536
hard nofile 65536
#保存并退出
:wq
vi /etc/sysctl.conf
#最后加上
vm.max_map_count=655360
#保存并退出
:wq
#执行命令
sysctl -p
权限给赋予用户
chgrp -R esuser ./es
chown -R esuser ./es
chmod 777 es
启动es
#切换成创建的用户
su esuser
cd /usr/local/es/elasticsearch-8.6.2
#启动
./bin/elasticsearch
这时打开网页去看web页面,端口9200 ——> 127.0.0.1:9200
如下成功
错误
ps1.
这个错误就是用户没有切换,es默认不允许root用户使用
2.安装ES图形化界面插件
安装node.js,可参考网上参考教程或者输入node -v,如果没有会提示你是否下载
查看node是否安装
node -v
如果安装成功了,那需要将grunt安装为全局命令
npm install -g grunt-cli
cd /usr/local/head
#解压压缩包
tar -zxvf elasticsearch-head-master.tar.gz
#进入解压后的路径
cd elasticsearch-head-master
#仅第一次需要输入
npm install
#ctrl+C 退出
#启动
grunt server
进入web端然后输入 ip地址:端口/9100
在上方连接自己的es ip地址:端口/9200
如果跨域没有写,会导致连接不上
连接后点击索引,新建索引
如果新建成功,会出现弹窗
点击ok没反应的话,按F12打开控制台查看错误
然后刷新页面,就能看见新建的索引
ES基础操作
1.新建一个index_hello的索引
PUT请求 http://127.0.0.1:9200/index_hello/
2.删除index_hello索引
DELETE请求 http://127.0.0.1:9200/index_hello/
3.给index_hello添加内容
POST请求 http://127.0.0.1:9200/index_hello/_doc/1
请求体内容 JSON格式
4.清空index_hello索引的全部内容
POST请求 http://127.0.0.1:9200/index_hello/_delete_by_query
请求体内容 {"query":{"match_all":{}}}
5.查询index_hello索引所有内容
POST请求 http://127.0.0.1:9200/index_hello/_search
请求体内容 {"query":{"bool":{"must":[{"match_all":{}}],"must_not":[],"should":[]}},"from":0,"size":10,"sort":[],"aggs":{}}
es在linux里后台启动
因为在前台,只要断开连接就会让es关闭,所有放后台启动
先切换成esuser(上面注册的那个)用户
#切换用户
su esuser
#赋予权限
chmod +x bin/elasticsearch
#执行后台启动(bin目录下)
./elasticsearch -d
#查看是否启动
ps aux|grep elasticsearch
搜索引擎的使用案例 ---> ES使用小案例