ElasticSearch
参考一:
https://blog.csdn.net/u011863024/article/details/115721328
参考二:
https://juejin.cn/post/6844904051994263559#heading-5
基本概念
索引:类比数据库
副本:数据的备份
分片:类比数据库的分库。当一个索引太大的时候单个节点放不下就要进行分片
文档:表的一条记录
mapping:类似我们创建表给字段设置属性,类型,字段长度。映射可以指定我们查询的字段的属性。例如如果指定为keyWords的话表明这个字段是不能分开查询的
api的操作
倒排索引
查找过程
集群脑裂问题
可能成因:
- 网络原因:节点间的网络通信一场,造成误判,选举出了新的master
- 节点负载:主节点的角色即是master又是data,当访问量过大的时候可能导致es停止响应。
- 内存回收:data节点点上的ES进程占用内存较多,引发JVM大规模内存回收,造成es进程失去响应。
解决方案: - 配置参数里有一个ping_timeout的配置,默认3s可以调大
- 配置参数里有一个minimum_master_nodes这这个参数,可以适当调大一点,官方建议是n(主节点)/2+1。
- 角色分离master节点和data节点分离。主节点配置node maser :true,node data:false,从相反
实际项目上的使用(使用场景)
用于元器件搜索,提升查询效率。百万数据模糊查询,全表扫描,查不动。我主要是做私有库这个需要的时候需要接入公共组提供的es搜索服务,对这块有些了解。包括倒排索引,分片,副本,映射这些基本概念。一些增删改查的操作,还有这些操作背后的基本原理。
映射是怎么建的:properties里,元器件名,test。目录keyword。。。