点一下关注吧!!!非常感谢!!持续更新!!!
目前已经更新到了:
- Hadoop(已更完)
- HDFS(已更完)
- MapReduce(已更完)
- Hive(已更完)
- Flume(已更完)
- Sqoop(已更完)
- Zookeeper(已更完)
- HBase(已更完)
- Redis (已更完)
- Kafka(已更完)
- Spark(已更完)
- Flink(已更完)
- ClickHouse(已更完)
- Kudu(已更完)
- Druid(已更完)
- Kylin(已更完)
- Elasticsearch(正在更新…)
章节内容
上节我们完成了如下的内容:
- ES-head 插件设置使用
- Kibana 插件设置使用
索引操纵
创建索引库
Elasticsearch接纳Rest风格API,因此其API就是一次HTTP请求,你可以用任何工具来发起HTTP请求。
语法:
- PUT /索引名称
- {
- "settings": {
- "属性名": "属性值"
- }
- }
复制代码 settings:就是索引库设置,其中可以索引库的各种属性,比如分片数、副本数等。目前我们不设置,先默认即可。
示例:
执行效果如下图:
判定索引是否存在
单个索引
语法:
示例:
执行效果如下图所示:
多个索引
语法:
示例:
- GET /wzkicu-index
- ,wzkicu,wzk
复制代码 执行效果如下图所示:(这里有不存在的索引,所以404了)
全部索引
方式1:
执行效果如下图所示:
方式2:
执行效果如下图所示:
这里的health列,表示:
- 绿色:索引的全部分片都正常分配
- 黄色:至少有一个副本没有得到正确的分配
- 红色:至少有一个主分片没有得到正常的分配
打开索引
语法:
示例:
执行效果如下图:
关闭索引
语法:
示例:
- POST /wzkicu-index/_close
复制代码 执行效果如下图:
删除索引
语法:
示例:
执行效果如下图所示:
IK分词器
下载项目
官方地点在这里,是GitHub开源的项目,安装方式许多,我这里就直接用官方的方式安装了:
- https://github.com/infinilabs/analysis-ik/releases/tag/Latest
复制代码 页面是如许的:
安装插件
- cd /opt/servers/elasticsearch-7.3.0/
- bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/7.3.0
复制代码 执行效果如下图所示,我们必要重启ES:
重启ES
重启过程,启动完毕:
分词测试
IK分词器两种分词模式:
- ik_max_word 模式 (最常用)(会将文本最细粒度的拆分)
- ik_smart 模式 (会做最粗粒度的拆分)
临时不细追究语法,先学习测试,再后续研究。
ik_max_word
- POST _analyze
- {
- "analyzer": "ik_max_word",
- "text": "山东省青岛市黄岛区"
- }
复制代码 我们的到的效果是:
- {
- "tokens": [
- {
- "token": "山东省",
- "start_offset": 0,
- "end_offset": 3,
- "type": "CN_WORD",
- "position": 0
- },
- {
- "token": "山东",
- "start_offset": 0,
- "end_offset": 2,
- "type": "CN_WORD",
- "position": 1
- },
- {
- "token": "省",
- "start_offset": 2,
- "end_offset": 3,
- "type": "CN_CHAR",
- "position": 2
- },
- {
- "token": "青岛市",
- "start_offset": 3,
- "end_offset": 6,
- "type": "CN_WORD",
- "position": 3
- },
- {
- "token": "青岛",
- "start_offset": 3,
- "end_offset": 5,
- "type": "CN_WORD",
- "position": 4
- },
- {
- "token": "市",
- "start_offset": 5,
- "end_offset": 6,
- "type": "CN_CHAR",
- "position": 5
- },
- {
- "token": "黄岛区",
- "start_offset": 6,
- "end_offset": 9,
- "type": "CN_WORD",
- "position": 6
- },
- {
- "token": "黄岛",
- "start_offset": 6,
- "end_offset": 8,
- "type": "CN_WORD",
- "position": 7
- },
- {
- "token": "区",
- "start_offset": 8,
- "end_offset": 9,
- "type": "CN_CHAR",
- "position": 8
- }
- ]
- }
复制代码 执行的效果如下图所示:
ik_smart
- POST _analyze
- {
- "analyzer": "ik_smart",
- "text": "山东省青岛市黄岛区"
- }
复制代码 执行的效果是:
- {
- "tokens": [
- {
- "token": "山东省",
- "start_offset": 0,
- "end_offset": 3,
- "type": "CN_WORD",
- "position": 0
- },
- {
- "token": "青岛市",
- "start_offset": 3,
- "end_offset": 6,
- "type": "CN_WORD",
- "position": 1
- },
- {
- "token": "黄岛区",
- "start_offset": 6,
- "end_offset": 9,
- "type": "CN_WORD",
- "position": 2
- }
- ]
- }
复制代码 执行的效果如下图所示:
提出题目
在现实环境中,有许多时间并不能够正确的理解我们断词断句,有时间有些词我们想要它拆分,有些词我们盼望它不拆分。
那我们怎么办呢?
词典使用
扩展词
不进行分词,告诉引擎这是一个词。
停用词
有些词在文本中出现的频率非常高,但对本文的语义会产生很大的影响,比方:呢、了、啊等等,英语中也有雷同于 a 、the、of 等等。如许的词称为停用词。
停用词经常会过滤掉,不会被索引,在检索过程中,如果用户的查询词中含有停用词,系统会自动过滤掉。
停用词可以加快索引的速率、淘汰索引库的巨细。
扩展词、停用词应该同一维护,避免集群中多台导致节点各自维护本身的一份。这里我们操持使用Web的方式,将dict词库共享给分词器等。
分词服务
设置Web
我这里使用 Nginx,你也可以使用 Tomcat:
安装过程如下图所示:
访问页面:http://h121.wzk.icu,可以看到Nginx顺利运行:
编写dict内容:
- vim /var/www/html/stop_dict.dic
复制代码 向其中写入的内容如下:
同理,我们写入 ext_dict.dic:
- vim /var/www/html/ext_dict.dic
复制代码 我们访问对应的页面,可以拿到对应的Web文件:
设置分词器
- # 这里看自己的版本 我选了好几个
- cd /opt/servers/elasticsearch-8.15.0/plugins/analysis-ik
- mkdir config
- vim IKAnalyzer.cfg.xml
复制代码 写入如下的内容:
- <?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://h121.wzk.icu/ext_dict.dic</entry>
- <!--用户可以在这里配置远程扩展停止词字典-->
- <entry key="remote_ext_stopwords">http://h121.wzk.icu/stop_dict.dic</entry>
- </properties>
复制代码 对应的截图如下所示:
重启服务
重启ES服务,测试效果。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |