https://www.elastic.co/guide/en/elasticsearch/reference/current/cat.html

1.监控接口

访问es的_cat接口,获取不同的属性
http://10.0.0.51:9200/_cat/health
http://10.0.0.51:9200/_cat/nodes
http://10.0.0.51:9200/_cat/master
http://10.0.0.51:9200/_cat/indices
http://10.0.0.51:9200/_cat/shards
http://10.0.0.51:9200/_cat/shards/t2 #http接口查看集群状态
# 判断是否健康
[root@es-node1 ~]#curl -s 127.0.0.1:9200/_cat/health|grep 'green' | wc -l
1
[root@es-node1 ~]# # 统计es节点数量
[root@es-node1 ~]#curl -s 127.0.0.1:9200/_cat/nodes | wc -l
3
[root@es-node1 ~]#

kibana控制台

kibana开启监控

添加监控

打开监控

查看es集群信息

节点使用率状态

kibana生成的监控数据

kibana获取监控数据,写入es,然后kibana再读。
10s采集区间。

关闭kibana监控

# 查看集群状态,是否监控
GET /_cluster/settings PUT /_cluster/settings
{
"persistent" : {
"xpack" : {
"monitoring" : {
"collection" : {
"enabled" : "false"
}
}
}
},
"transient" : { }
} # 可以删除监控数据index

2.ES中文分词器

创建测试数据

测试写入新index

PUT /news2/_doc/1
{"content":"美国留给伊拉克的是个烂摊子吗"} PUT /news2/_doc/2
{"content":"公安部:各地校车将享最高路权"} PUT /news2/_doc/3
{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"} PUT /news2/_doc/4
{"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}

关键字查询


POST /news/_search
{
"query":{"match":{"content":"中国"}},
"highlight":{
"pre_tags":["--","=="],
"post_tags":["--","=="],
"fields":{
"content":{}
}
}
}

你搜索的命名是词语,但是es认为是单个的字母。

修改es中文查询

1.这是第三方插件,需要给es所有节点部署,且重启
2.中文分词器版本,与es版本对应
3.下载地址
https://github.com/medcl/elasticsearch-analysis-ik

安装中文分词器插件

# 在线安装
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.1/elasticsearch-analysis-ik-7.9.1.zip # 离线安装,3个机器
[root@es-node3 ~]#/usr/share/elasticsearch/bin/elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.1.zip -> Installing file:///root/elasticsearch-analysis-ik-7.9.1.zip
-> Downloading file:///root/elasticsearch-analysis-ik-7.9.1.zip
[=================================================] 100%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks. Continue with installation? [y/N]y
-> Installed analysis-ik # 重启3个节点的es
systemctl restart elasticsearch.service

测试中文分词器

1. 要创建支持中文的索引模板
PUT /news_cn/ 2. 创建索引使用哪一款分词器
PUT /news_cn/_doc/_mapping?include_type_name=true
{
"properties": {
"content": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
}
} } # 根据教程走即可 https://github.com/medcl/elasticsearch-analysis-ik # 插入新数据

解释

ik_max_word 和 ik_smart 什么区别?

ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”

拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合,适合 Term Query;

ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”,适合 Phrase 查询。

完整中文分词效果


POST /news/_search
{
"query":{"match":{"content":"中国"}},
"highlight":{
"pre_tags":["--","=="],
"post_tags":["--","=="],
"fields":{
"content":{}
}
}
}

创建自带中文词库

[root@es-node3 /etc/elasticsearch/analysis-ik]#wc -l main.dic
275908 main.dic

更新中文词库

https://github.com/medcl/elasticsearch-analysis-ik#%E7%83%AD%E6%9B%B4%E6%96%B0-ik-%E5%88%86%E8%AF%8D%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95

1. 安装nginx
[root@es-node1 ~]#yum install nginx -y 2.写好词典文件 cat >> /usr/share/nginx/html/my_word.txt <<'EOF'
北京
上海
江苏
淮安
山东
于超
周杰伦
EOF 3.启动访问nginx的词典
[root@es-node1 ~]#nginx
[root@es-node1 ~]#
[root@es-node1 ~]#curl 10.0.0.51/my_word.txt
北京
上海
江苏
淮安
山东
于超
周杰伦
[root@es-node1 ~]# 4.修改es中文分词器插件
[root@es-node1 ~]# cat >/etc/elasticsearch/analysis-ik/IKAnalyzer.cfg.xml <<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict"></entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">http://10.0.0.51/my_word.txt</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
EOF 5.同步3个机器的配置文件
cd /etc/elasticsearch/analysis-ik/
scp IKAnalyzer.cfg.xml root@10.0.0.52:/etc/elasticsearch/analysis-ik/
scp IKAnalyzer.cfg.xml root@10.0.0.53:/etc/elasticsearch/analysis-ik/ 6.重启所有节点的es,检查日志
systemctl restart elasticsearch.service

试试是否识别自定义中文词典

# 默认词库里是没有的
[root@es-node3 /etc/elasticsearch/analysis-ik]#grep '于超' main.dic # 注意修改索引,采用中文分词插件 # 注意步骤,先创建index,修改属性
PUT /names/ PUT /names/_doc/_mapping?include_type_name=true
{
"properties": {
"content": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
}
} } # 再写入数据
PUT /names/_doc/1
{"content":"张三李四王二麻"} PUT /names/_doc/2
{"content":"张三李四王二麻于超和于超他哥权"} PUT /names/_doc/3
{"content":"王二麻和于超的老板xxasxasxasx"} PUT /names/_doc/4
{"content":"马斯克说给于超老师刷火箭,直接送于超上太空"}

图示,提取了中文于超

去掉词库的中文单词

es中文插件以支持nginx的热更新
去掉单词,于超

此时已经不认识了单词“于超”

再次添加nginx词典,热更新

1. 60s 更新时间
2. 注意,数据要更新index(公司里后端开发,会主动更新,新产品的关键词,更新词典,然后再录入数据)

ES进阶的更多相关文章

  1. ES进阶--04

    第30节彻底掌握IK中文分词_上机动手实战IK中文分词器的安装和使用 之前大家会发现,我们全部是用英文在玩儿...好玩儿不好玩儿...不好玩儿 中国人,其实我们用来进行搜索的,绝大多数,都是中文应用, ...

  2. ES进阶--02

    第11节深度探秘搜索技术_案例实战基于dis_max实现best fields策略进行多字段搜索 课程大纲 1.为帖子数据增加content字段 POST /forum/article/_bulk{ ...

  3. ES进阶--01

    第2节结构化搜索_在案例中实战使用term filter来搜索数据 课程大纲 1.根据用户ID.是否隐藏.帖子ID.发帖日期来搜索帖子 (1)插入一些测试帖子数据 POST /forum/articl ...

  4. 白日梦的ES笔记三:万字长文 Elasticsearch基础概念统一扫盲

    目录 一.导读 二.彩蛋福利:账号借用 三.ES的Index.Shard及扩容机制 四.ES支持的核心数据类型 4.1.数字类型 4.2.日期类型 4.3.boolean类型 4.4.二进制类型 4. ...

  5. ElasticSearch[v6.2] 在实际项目中的应用

    摘要:本文所讲述的内容,为ElasticSearch(以下简称ES)全文搜索引擎在实际大数据项目的应用:ES的底层是开源库 Lucene.但是,你没法直接用 Lucene,必须自己写代码去调用它的接口 ...

  6. [.net 面向对象程序设计进阶] (2) 正则表达式 (一) 快速入门

    [.net 面向对象程序设计进阶] (2) 正则表达式 (一) 快速入门 1. 什么是正则表达式? 1.1 正则表达式概念 正则表达式,又称正则表示法,英文名:Regular Expression(简 ...

  7. [.net 面向对象程序设计进阶] (3) 正则表达式 (二) 高级应用

    [.net 面向对象程序设计进阶] (2) 正则表达式 (二)  高级应用 上一节我们说到了C#使用正则表达式的几种方法(Replace,Match,Matches,IsMatch,Split等),还 ...

  8. gulp进阶构建项目由浅入深

    gulp进阶构建项目由浅入深 阅读目录 gulp基本安装和使用 gulp API介绍 Gulp.src(globs[,options]) gulp.dest(path[,options]) gulp. ...

  9. Python之路,Day16 - Django 进阶

    Python之路,Day16 - Django 进阶   本节内容 自定义template tags 中间件 CRSF 权限管理 分页 Django分页 https://docs.djangoproj ...

  10. 我的Android进阶之旅------>经典的大牛博客推荐(排名不分先后)!!

    本文来自:http://blog.csdn.net/ouyang_peng/article/details/11358405 今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下 谦虚的天下 柳志超 ...

随机推荐

  1. 最佳实践:使用阿里云CDN加速OSS访问

    简介: 用户直接访问OSS资源,访问速度会受到OSS的下行带宽以及Bucket地域的限制.如果通过CDN来访问OSS资源,带宽上限更高,并且可以将OSS的资源缓存至就近的CDN节点,通过CDN节点进行 ...

  2. 开源 Serverless 里程碑:Knative 1.0 来了

    ​简介:近期Knative发布了1.0版本,达到了一个重要的里程碑.Knative自2018年7月首次发布以来, 版本不断的迭代发展,除了无数的错误修复.稳定性和性能增强之外,按时间顺序还进行了一些改 ...

  3. 使用率激增 250%,这份报告再次将 Serverless 推向幕前

    简介: 本文是对 Datadog 最新的一份 Serverless 报告的解读,欢迎大家留言讨论. 本文是对 Datadog 最新的一份 Serverless 报告的解读,欢迎大家留言讨论.​ 每项新 ...

  4. WPF 使用 VideoDrawing 播放视频

    本文告诉大家如何在 WPF 使用 VideoDrawing 进行视频播放 用这个方法有什么优势?其实只是想作为某个控件的背景,某个控件的背景使用视频而已 控件的背景使用 DrawingBrush 传入 ...

  5. 2018-8-29-dotnet-core-2.1-使用阶梯编译

    title author date CreateTime categories dotnet core 2.1 使用阶梯编译 lindexi 2018-08-29 08:49:12 +0800 201 ...

  6. 浅析mvvm模式和mvc模式的区别和联系

    三层架构与MVC模式 三层架构 三层架构是一种以实现"高内聚,底耦合"为目标,的代码架构方法,它将整个业务分为,表示层,业务层,数据访问层(Dao层). MVC模式 MVC模式是一 ...

  7. k3s安装---适配边缘计算场景的轻量级的k8s(二)

    三.安装k8s k3s官网:https://k3s.io 文档: github:https://github.com/k3s-io/k3s 3.1 安装基础环境 # 安装基础环境 1.安装yum源 c ...

  8. C#.NET体系图文概述—2024最全总结

    C# 是一种简单.现代.面向对象和类型安全的编程语言.. .NET 是由 Microsoft 创建的开发平台,平台包含了语言规范.工具.运行,支持开发各种应用,如Web.移动.桌面等..NET框架有多 ...

  9. golang 并发问题

    如何使用channel实现定时器? 使用channel的阻塞,里面放一个sleep就可以了 Go语言--goroutine并发模型: 视频地址: https://www.bilibili.com/vi ...

  10. 01. go-admin的下载与启动

    目录 一.介绍 二.新建空文件夹 三.获取后台源码并启动 1.下载编译go代码 2.配置命令到goland IDE ,debug启动 四.获取前端ui源码并启动 1.下载编译go代码 2.启动项目 * ...