安装jdk
rpm -ivh jdk-11_linux-x64_bin.rpm
安装elasticsearch
tar zxvf elasticsearch-6.5.0.tar.gz
#不要解压到/root 目录下 本次演示解压到根目录
启动 elasticsearch
cd elasticsearch-6.5.0/bin
./elasticsearch
启动时可能会出现 can not run elasticsearch as root
创建用户
useradd elastic
passwd elastic
更改目录的所有者和组 切换到 elasticsearch-6.5.0目录的外层执行
chown elastic:elastic -R elasticsearch-6.5.0
切换用户 su elastic
然后再进入bin目录执行
./elasticsearch
因为启动时没有使用 -d参数 所以需要再开启一个终端 查看是否存在9200端口 netstat -tnl
如果有9200端口说明启动成功
配置外网访问
次改config/ elasticsearch.yml
修改:#network.host: 127.0.0.1 的值为network.host: 0.0.0.0 注意:network.host:和0.0.0.0之间有一个空格,否则可能无法启动
切换用户 执行启动命令(没有配置成功之前最好不要执行后台启动的命令)
/elasticsearch-6.5.0/bin/elasticsearch
解决类似max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
编辑 /etc/security/limits.conf
在文件最后添加/修改
- soft nofile 65536
- hard nofile 65536
解决类似max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加vm.max_map_count=655360
然后执行sysctl -p
然后再启动 如果仍然提示相同的错误 可以重启系统后再启动
如果存在9200端口并且通过http://ip:9200访问时返回json格式的数据 则说明启动成功
测试:
restful api
创建索引 请求方式PUT 请求url http://ip:9200/索引名/类型名/id值 例如http://192.168.8.115:9200/user/test/1
请求的数据格式为json 例如
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
可以使用postman测试
获取数据 使用GET方式 请求url http://ip:9200/索引名/类型名/id值 例如http://192.168.8.115:9200/user/test/1
删除 使用DELETE方式 请求地址相同
搜索
POST方法 http://ip:9200/索引名/_search
请求数据为json格式 例如
{
"query": {
"match": {
"message": "大箱子"
}
}
}
或者
{
"query": {
"bool" : {
"must" : {
"query_string" : {
"query" : "trying"
}
},
"filter" : {
"term" : { "user" : "kimchy" }
}
}
}
}