课程名称:Java架构师-技术专家
课程章节: 第10周 手把手带你快速搞定分布式搜索引擎ES
课程讲师: 慕课讲师团队
课程内容
分词和分词器
什么是分词
把文本转换成为一个个的单词,分词称之为analysis。es默认只对英文语句做分词,中文不支持,每个中文字都会被拆分为独立的个体。
- 英文分词:I study in imooc.com
- 中文分词:我在慕课网学习
POST /_analyze
{
"analyzer":"standard",
"text":"text文本"
}
POST /my_doc/_analyze
{
"analyzer":"standard",
"field":"name",
"text":"text文本"
}
es内置分词器
- standard:默认分词,单词会被拆分,大小会被转换为小写。
- simple:按照非字母拆分。大写转为小写
- whitespace:按照空格分词。忽略大小写
- stop:去除无意义单词,比如 the/a/an/is
- keyword: 不做分词。把整个文本作文一个单独的关键词
建立IK中文分词器
-
zip解压:unzip xxx.zip -d ik
解压到elasticsearch的插件目录下 -
ik_smart:智能分词:会做最粗粒度的拆分,适合Phrase查询
-
ik_max_word:最大分词:会将文本做最细粒度的拆分,穷尽各种可能的组合,适合Term Query
自定义中文词库
- 在{es}/plugins/ik/config下,创建:
vim custom.dic
- 并且添加内容:
慕课网
骚年
- 配置自定义扩展词典
<entry key="ext_dict">custom.dic</entry>
- 重启
ElasticSearch集群
集群不仅可以实现高可用,也能实现海量数据的横向扩展。
分片机制
每个索引可以被分片,就相当于吃披萨的时候被切了好几块,然后分给不同的人吃
- 每个主分片都包含索引数据的一部分
- replica shard 其实就是primary shard的一个备份,如果primary shard挂了,replica shard还是可以继续去访问的,这个时候就需要用到集群了。
- 同一个分片的主与副本是不会放在同一个服务器里的,因为一旦宕机,这个分片就没有了
- 不管是服务器1、服务器2、服务器3,其中的一台宕机,集群仍然可以为用户提供完整的服务。
配置集群
# 配置集群名称,保证每个节点的名称相同,如此就能都处于一个集群之内了
cluster.name: es
# 每一个节点的名称,必须不一样
node.name: node-1
# http端口(使用默认即可)
http.port: 9200
# 主节点,作用主要是用于来管理整个集群,负责创建或删除索引,管理其他非master节点(相当于企业老总)
node.master: true
# 数据节点,用于对文档数据的增删改查
node.data: true
# 集群列表
discovery.seed_hosts: ["192.168.0.221", "192.168.0.222", "192.168.0.223"]
# 启动的时候使用一个master节点
cluster.initial_master_nodes: ["node-1"]
最后可以通过如下命令查看配置文件的内容:
more elasticsearch.yml | grep ~[~#]
cluster.name: es-cluster
node.name: node-3
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.seed_hosts: ["192.168.0.221", "192.168.0.222","192.168.0.223"]
cluster.initial_master_nodes: ["node-1"]
集群脑裂
-
什么是脑裂? 如果发生网络中断或者服务器宕机,那么集群会有可能被划分为两个部分,各自有自己的master来管理,那么这就是脑裂。
-
在新版本7.x中,minimum_master_node这个参数已经被移除了,这一块内容完全由ES自身去管理,这样就避免了脑裂的问题,选举也会非常快。
文档读写原理
协调节点负责接收用户的请求
- 写包含了文档的新增、修改、删除
- 文档读写原理
课程内容
今天学习了 ES 的分词和分词器,集群原理。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦