es安装与配置以及全文检索

一、es安装

1、首先确保安装jdk

Linux 检测是否安装jdk命令: java -version
此处是11.0.18

2、官网下载es 选的8.8.2

tar -zxvf elasticsearch-8.8.2-linux-x86_64.tar.gz -C /opt

3、创建普通用户

useradd icoding  #新增icoding用户
passwd  icoding  #为icoding用户设置密码
userde1 -r icoding   #如果错了可以删除再加
#为普通用户授权 否则无法运行es
cd /opt/
chown -R icoding:icoding elasticsearch-8.8.2

4、修改elasticsearch.yml文件

vim /opt/elasticsearch-8.8.2/config/elasticsearch.yml
cluster.name: icoding-course
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]

5、修改配置文件
新创建的icoding用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件,添加类似如下内容
#切换到root用户

su root
vi /etc/security/limits.conf

#在文件末尾中增加下面内容
icoding soft nofile 65536
icoding hard nofile 65536

vi /etc/security/limits.d/90-nproc.conf 

在文件末尾中增加下面内容
icoding soft nofile 65536
icoding hard nofile 65536

  • hard nproc 4096
    #注:*代表Linux所有用户名称
 vim jvm.options

在这里插入图片描述

vi /etc/sysctl.conf

在文件中增加下面内容
vm.max_map_count=655360
重新加载,输入下面命令:

sysctl -p

6、启动elasticsearch

su icoding

#切换到icoding用户启动

cd /opt/elasticsearch-7.4.0/bin
./elasticsearch #启动

浏览器输入(自己虚拟器ip ifconfig命令查看)
#暂时关闭防火墙

systemctl stop firewalld

#或者
#永久设置防火墙状态

systemctl enable firewalld.service #打开防火墙永久性生效,重启后不会复原
systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原

#以上命令关闭防火墙不管用试试下面这行

service iptables stop

http://192.168.200.130:9200/

二、Es_head安装

node环境

1、进入/usr/local/src ,把下载的node文件放在。

cd /usr/local/src

2、下载nodejs
(1)、进入node的中文站点 http://nodejs.cn/download/ 并选择需要安装的版本链接
(2)、使用wget 命令进行下载, 如:

wget https://npm.taobao.org/mirrors/node/v10.16.0/node-v10.16.0-linux-x64.tar.xz

(3)、使用tar对下载好的压缩包进行解压

tar xvf node-v10.16.0-linux-x64.tar.xz

(4)、重命令解压后的文件夹名,感觉有点不长了。把它命名为 nodejs

mv node-v10.16.0-linux-x64 nodejs

3、全局使用node与npm

ln -s /usr/local/src/nodejs/bin/node /usr/local/bin/node
ln -s /usr/local/src/nodejs/bin/npm /usr/local/bin/npm

Tips: ln的功能是为某一个文件在另外一个位置建立一个同不的链接。具体用法是:ln -s 源文件 目标文件
4、配置环境变量:/usr/local/src/nodejs/bin
(1)、切换到用户根目录

cd ~

(2)、修改用户环境变量文件

vi .bash_profile

5、测试是否安装成功。

node -v 

会输出:v10.16.0

npm -v

会输出:6.9.0
elasticsearch-head下载
1、下载

https://codeload.github.com/mobz/elasticsearch-head/zip/refs/heads/master
unzip elasticsearch-head-master.zip &>/dev/null

2、在elasticsearch-head-master里执行以下语句:

npm install

3、启动
#依赖安装好之后直接启动

npm run start

但是这种方式启动关闭shell页面后就停止了 换一种方式启动

nohup npm run start &

如果想要停止,使用下面的方式:

lsof -i:9100  查出端口运行的进程id
kill -9 进程id

常见问题
正常情况下启动后连接是显示失败的:集群健康值: 未连接
这种情况需要修改几处
1.es修改:
http.cors.enabled: true
http.cors.allow-origin: “*”
http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length
在这里插入图片描述

2、elasticsearch-head 修改
修改Gruntfile.js

cd /usr/local/elasticsearch-head-master
vim Gruntfile.js

找到最后connect->server->options中添加hostname:hostname: ‘*’
在这里插入图片描述

三、Kibana安装

1、下载
Kibana官方下载地址:https://www.elastic.co/cn/downloads/kibana

 tar –zxvf kibana-8.8.2-linux-x86_64.tar.gz–C /opt/

2、修改配置
到kibana安装目录的config下,编辑kibana.yml配置文件,添加如下配置:

server.port: 5601
#配置本机ip 
server.host: "0.0.0.0" 
#配置es集群url 
elasticsearch.url: "http://localhost:9200"

3、Kibana 启动

./kibana

http:// localhost:5601

四、Dsl语句学习

在这里插入图片描述

文档:一条数据就是一个文档,es中是Json格式
字段:Json文档中的字段
索引:同类型文档的集合
映射:索引中文档的约束,比如字段名称、类型
elasticsearch与数据库的关系:
•数据库负责事务类型操作
•elasticsearch负责海量数据的搜索、分析、计算

1、索引库操作

在这里插入图片描述

mapping常见属性有哪些?
•type:数据类型
•index:是否索引
•analyzer:分词器
•properties:子字段
type常见的有哪些?
•字符串:text、keyword
•数字:long、integer、short、byte、double、float
•布尔:boolean
•日期:date
•对象:object
(1)创建索引库
ES中通过Restful请求操作索引库、文档。请求内容用DSL语句来表示。创建索引库和mapping的DSL语法如下:
在这里插入图片描述

(2)查看、删除索引库
在这里插入图片描述

(3)修改索引库
在这里插入图片描述

2、文档操作
(1)添加文档
在这里插入图片描述

(2)查看、删除文档
在这里插入图片描述

(3)修改文档
在这里插入图片描述

2、DSL查询语法
DSL Query的分类
Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。
常见的查询类型包括:
•查询所有:查询出所有数据,一般测试用。
例如:match_all
•全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。
例如:•match_query •multi_match_query
•精确查询:根据精确词条值查找数据,一般是查找keyword、数值、日期、boolean等类型字段。
例如:•ids •range •term
•地理(geo)查询:根据经纬度查询。
例如:•geo_distance •geo_bounding_box
•复合(compound)查询:复合查询可以将上述各种查询条件组合起来,合并查询条件。
例如:•bool •function_score
在这里插入图片描述

3、全文检索查询
match查询:全文检索查询的一种,会对用户输入内容分词,然后去倒排索引库检索,语法:
在这里插入图片描述

multi_match:与match查询类似,只不过允许同时查询多个字段,语法:
在这里插入图片描述

精确查询
精确查询一般是查找keyword、数值、日期、boolean等类型字段。所以不会对搜索条件分词。常见的有:
•term:根据词条精确值查询
•range:根据值的范围查询
在这里插入图片描述

复合查询Boolean Query
布尔查询是一个或多个查询子句的组合。子查询的组合方式有:
•must:必须匹配每个子查询,类似“与”
•should:选择性匹配子查询,类似“或”
•must_not:必须不匹配,不参与算分,类似“非”
•filter:必须匹配,不参与算分
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值