《4.12.1 搜索引擎核心理论思想视频》
- 10 45 数据库适合结构化数据的精确查询,不适合半结构化、非结构化数据的模糊查询及灵活搜索
- inverted index 反向索引(倒排索引)
- 22分 中文分词器:
- 26 17 在反向索引中包含词出现的次数及位置:
- 30 40 搜索的步骤:
- 对搜索的输入分词
- 度量相关性
视频中提出的度量相关性方案:统计词语在文档中出现的次数(可对在标题中出现的给予更高权重)
应该还有其它方案,比如余弦相似性:https://blog.csdn.net/qq_23204557/article/details/103021370
《4.12.2 ES应用场景及核心概念》
-
9分 Elasticsearch架构:
-
37分 通过index alias解决db与es之间的数据同步问题
-
47 45 分片的好处:扫描时间因为单机数据减少而减少。多副本可以提高可用性和吞吐量。这点可参考1
-
62 39 index, mapping type, document : Elasticsearch Concepts You Need to Learn 我在1有相关讨论总结。
-
1:45:07 _routing field :
ElasticSearch面试题 之 4.详细描述一下Elasticsearch索引文档的过程 也有提到:
默认使用文档ID参与计算(也支持通过routing),以便为路由提供合适的分片。
shard = hash(document_id) % (num_of_primary_shards)
这点很像kafka的生产者可根据消息的key决定投递到哪个partition.
《4.12.4 ES高级查询》
- es里用suggester实现查询建议(包括拼写检查,和自动补全)
《4.12.5 ES高性能集群》
-
6分 Es官方建议:
-
13 22+ 如何避免脑裂:设置最少投票通过数量(discovery.zen.minimum_master_nodes)超过所有候选节点一半以上
相关知识:Elasticsearch master节点的作用以及脑裂现象
ES(Elasticsearch)集群节点角色 -
索引应设置多少分片:
-
21 39 每个分片或副本,都是Lucene的一个索引,会消耗文件的句柄。
-
29 20 创建集群的实战
《4.12.6 ELK》
- ELK是ElasticSearch Logstash Kibana三者的缩写:
- 8分 ELK老的架构如下图。缺点:Logstash是一种比较重的agent
- 架构2:用beats进行日志采集,用Logstash分析:
- 12 35 Metricbeat可以收集主机的内存情况、CPU情况、磁盘IO、网络IO等等
- Filebeat: 日志文件采集器
- 50 40 当机器太多,日志太多,Logstash有点受不了了,可以加个Kafka集群:
本博—《专题五 容器化微服务》之《第三章 云原生DevOps》之《第二节 监控》之《3.2.3 Elasticsearch与Kibana》 ↩︎ ↩︎