Elasticsearch安装配置

准备工作

上传 elasticsearch-7.9.3-linux-x86_64.tar 解压

1
tar -zvxf elasticsearch-7.9.3-linux-x86_64.tar.gz

拷贝到 /usr/local/es 目录下

1
cp -r /usr/ftp/elasticsearch-7.9.3 /usr/local/es

安装配置

修改配置

1
vi /usr/local/es/elasticsearch-7.9.3/config/elasticsearch.yml
1
2
3
4
5
6
7
8
cluster.name: my-ess #修改集群名称
node.name: es-1 #修改节点名称
path.data: /usr/local/es/elasticsearch-7.9.3/data #数据存储路径
path.logs: /usr/local/es/elasticsearch-7.9.3/logs #日志存储路径
network.host: 0.0.0.0 #允许任意主机访问
http.port: 9200 #web访问端口
discovery.seed_hosts: ["es-1"] #发现的主机
cluster.initial_master_nodes: ["es-1"] #初始化主节点

es为了安全考虑不允许使用root账号 或者root身份登录 所以需单独创建账号

1
2
useradd es
passwd es

修改es文件目录的所有者为es

1
2
chown -R es:es /usr/local/es
su es

启动程序

1
/usr/local/es/elasticsearch-7.9.3/bin/elasticsearch

需要选保证jdk正确安装 启动出现 低于最低大小配置

切回root用户 编辑 /etc/security/limits.conf,追加以下内容

1
2
3
4
vi /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536

此文件修改后需要重新登录用户,才会生效

编辑 /etc/sysctl.conf,追加以下内容

1
2
3
vi /etc/sysctl.conf

vm.max_map_count=655360

修改完成重启虚拟机 切换es用户启动

1
/usr/local/es/elasticsearch-7.9.3/bin/elasticsearch -d

浏览器访问

Windows 谷歌浏览器安装head-master(需要去下载ocr文件,修改 headmaster_head文件夹中 vendor.js文件中关于请求方式从form 修改为 application/json,具体修改位置见文末)插件方便查看json格式的查询结果

Windows插件安装

安装插件 谷歌浏览器设置 更多工具 扩展程序 添加插件

可以使用图形界面或者命令添加索引 格式是索引/类型 也可以在linux中使用 Curl命令来添加内容 添加使用的提交类型是POST

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
curl -H "Content-Type: application/json" -XPOST 'localhost:9200/team/player/1' -d '
{
"name":"zs",
"high":"175",
"val":90
}'
curl -H "Content-Type: application/json" -XPOST 'localhost:9200/team/player/2' -d '
{
"name":"ls",
"high":"166",
"val":85
}'
curl -H "Content-Type: application/json" -XPOST 'localhost:9200/team/player/3' -d '
{
"name":"ww",
"high":"180",
"val":77
}'

执行完上面内容 插入 一个索引为球队 类型为球员的 三条数据

查看可以使用图形界面也可以使用命令

1
2
3
4
5
6
curl -XGET 'http://localhost:9200/team/_search?pretty' -H 'content-Type:application/json' -d '
{
"query": {
"match_all": {}
}
}'

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"query": {
"bool": {
"must": [
{
"query_string": {
"default_field": "high.keyword",
"query": ">170"
}
}
],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 10,
"sort": [],
"aggs": {}
}

报错

{“error”:”Content-Type header [application/x-www-form-urlencoded] is not supported”,”status”:406}

解决办法:

进入head安装目录;

编辑vendor.js 共有两处

      ①、6886行 contentType: “application/x-www-form-urlencoded,改成:contentType: “application/json;charset=UTF-8”

      ②、7574行 var inspectData = s.contentType === “application/x-www-form-urlencoded” &&,改成:var inspectData = s.contentType === “application/json;charset=UTF-8” &&

原因2:在curl中,是在报文Content-type的参数:application/x-www-form-urlencoded不支持Json发送。需要改成application/Json。所以需要添加参数 ; -H ‘Content-Type: application/json’或者直接在终端操作命令时修改操作命令

原命令:

1
2
3
4
5
6
curl -XGET 'http://localhost:9200/_count?pretty' -d '
{
"query": {
"match_all": {}
}
}'

修改后命令:

1
2
3
4
5
6
7
8
9
curl -XGET 'localhost:9200/_count?pretty' -H 'content-Type:application/json' -d '

{

"query":{

"match_all":{}

}

或:

1
curl -H "Content-Type: application/json" http://localhost:9200/tmdb/_search?pretty -d ' {"query": {"match_all": {}}}'
1
2
3
4
5
6
curl -XGET 'http://localhost:9200/team/_search?pretty' -H 'content-Type:application/json' -d '
{
"query": {
"match_all": {}
}
}'

Elasticsearch安装配置
https://yftxhy.site/2022/11/29/Elasticsearch安装配置/
作者
Taozi
发布于
2022年11月29日
许可协议