赞
踩
一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能
正向索引:基于文档id创建索引。查询词条时必须先找到文档,而后判断是否包含词条
倒排索引:对文档内容分词,对词条创建索引,并记录词条所在文档的信息。查询时先根据词条查询到文档id,而后获取到文档,倒排索引是为了解决非结构化数据的检索问题而产生的。
索引(index) 是一组具有共同特性的文档集合,类似数据库的表(table)
文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式
字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)
在ES中存储记录的单位是JSON“文档”,而JSON“文档”中的“字段”也就是组成JSON的一个个KV对。
Mapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema)
Es集群有40个节点,一个索引包含5个分片,每个分片都有一个副本,
1、将堆内存最大值和最小值设置相等,防止elasticSearch运行过程中jvm改变堆内存大小,引起jvm内存震动,建议系统内存一半内存分配给jvm内存
2、关闭swap,elasticSearch需要一个所有内存操作都能被快速执行的环境,服务一旦使用swap内存,就会降低数据存取效率,影响性能
3、设置文件句柄,linux中每个进程默认打开的句柄数是1024,可以通过修改/etc/security/limits.conf来增大最大文件句柄数量,一般建议65535
4、根据业务增量需求,采用基于日期模板创建索引,通过roll over api 滚动索引
5、使用别名进行索引管理
elasticsearch中rollover的用法_vincent_duan的博客-CSDN博客_es rollover详情:elasticsearch中rollover的用法_vincent_duan的博客-CSDN博客_es rollover
6、每天凌晨定时对索引做段合并操作,以释放空间(在elasticsearch中每一个分片(shard) 每隔1秒都会refresh一次,每次refresh都会生成一个新的segment,按照这个速度过不了多久segment的数量就会爆炸,所以需要段合并)
7、仅针对需要分词的字段,合理的设置分词器
8、冷热分离
基于Elasticsearch 6.6 X-PACK 推出的新功能,可以免费使用。那么我们将索引生命周期管理称为ILM。具体的操作步骤是:先创建一个或者多个策略(policy),然后每个策略根据实际需求去制定不同阶段加Actions。最后将这个策略应用到索引上,实现自动化统一管理。
具体
Elasticsearch 冷热分离与索引生命周期管理深度讲解与实战 - 腾讯云开发者社区-腾讯云
1、from + size:
优点:支持随机翻页 缺点:深度分页问题,默认查询上限(from + size)是10000
2、search after:分页时需要排序,原理是从上一次的排序值开始,查询下一页数据
优点:没有查询上限(单次查询的size不超过10000) 缺点:只能向后逐页查询,不支持随机翻页
3、scroll:原理将排序数据形成快照,保存在内存。官方已经不推荐使用。
优点:没有查询上限(单次查询的size不超过10000) 缺点:会有额外内存消耗,并且搜索结果是非实时的
1、创建倒排索引时对文档分词 2、用户搜索时,对输入的内容分词
利用config目录的IkAnalyzer.cfg.xml文件添加拓展词典和停用词典 在词典中添加拓展词条或者停用词条
搜索执行阶段过程分俩个部分,我们称之为 Query(1-3) Then Fetch(4)
这⾥的索引⽂档应该理解为⽂档写⼊ ES,创建索引的过程。
elasticSearch 通过consistency设置写操作的一致性级别,参数值
1.仅主要分片(one) 2.主分片和所有副本分片(all)
3 .大部分分片(quorum)
quorum=int((primary+number_of_replicas)/2)+1
其中number_of_replicas是指定的索引设置中的副本分片的数量,而不是当前副本的分片数量
match在匹配时会对所查找的关键词进行分词,然后按分词匹配查找,而term会直接对关键词进行查找。一般模糊查找的时候,多用match,而精确查找时可以使用term
text支持模糊查询,且会进行分词操作。keyword不支持模糊查询,且不支持分词操作。
bool查询中
1、must (must字段对应的是个列表,也就是说可以有多个并列的查询条件,一个文档满足各个子条件后才最终返回)
2、should (只要符合其中一个条件就返回)
3、must_not (与must相反,也就是说可以有多个并列的查询条件,一个文档各个子条件后才最终的结果都不满足)
4、filter(条件过滤查询,过滤条件的范围用range表示gt表示大于、lt表示小于、gte表示大于等于、lte表示小于等于)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。