在每天使用Elasticsearch的过程中,作者经常需要对一些缓慢的查询进行一些分析。因为在解释Elasticsearch的个人资料信息时,Elasticsearch的基础层引用的Lucene通常会受到干扰,因此我将对 - 深度理解 - 深度理解Lucene的基本原则,希望帮助检查工作中遇到的查询性能问题。
本文主要介绍Lucene的查询过程和基本原理。它从原理和源级别描述和分析了查询过程,这使您可以整体了解Lucene的底层的查询逻辑和过程。基于此目的,在此目的上,某些细节无法加深。(例如某些索引文件等的数据结构),这不会影响整体认知。
注意:本文基于Lucene版本7.2.1,对应于Elasticsearch版本6.2.3(公司使用的ES版本)。不同的版本可能有些不同。
在了解Lucene的查询过程之前,让我们了解Lucene中的几种重要查询类型。
Lucene 7.2.1中有以下查询(指详细信息)
https://locene.apache.org/core/7_2_1/core/org/!
这是一些常见的查询,并简要描述其基本目的:
首先转到Lucene查询的流程图:
1.查询进入多个搜索方法入口入口入口的入口。
值得注意的是,有一些方法,例如搜索,多线程并发搜索和其他方法来优化不同的查询方案。
例如,SearchAfter主要响应深层编码问题,而多线程并发搜索实际上使用了搜索的多个部分的发送transmented executeService,并最终合并。
不管多线程如何,搜索的核心逻辑是查询和计算文件的每个部分的文件。因此,遵循 - 仅对单个线程场景进行分析。
2.在查询重写查询过程中,每个查询将继承类并重写减少基础接口的复杂性以接受参数的方法。基础Lucene界面通常只需要接收“简单”查询条件(正式转介到)。
3.产生评分重量主要是为了产生评分的重量。
我们以布尔轻量级为例,其数据结构如下:
4.生成bulkscorr5。收集器 - 此后收集了查询结果,并获得了最终查询结果。
本文将每个人都从上层开始了解Lucene的查询过程,并对整体搜索过程有一定的了解。熟悉基本过程和密钥查询节点,我希望在每天检查和优化查询语句时能有所帮助检查和优化查询语句,可帮助您更快地定位性能卡点。
参考文档不安全的魔术应用程序(locksupport)
数据构建实践(2)-DATA治理数据质量
RocketMQ延迟方案分析和摘要
Zhengcai Cloud Flutter低成本屏幕适应解决方案的发现
Zheng Caiyun技术团队(零)是一个充满激情,创造力和执行的团队,基地在风景如画的杭州。该团队目前拥有300多个研发合作伙伴,包括来自Ali,Huawei和Netease的“老”士兵,以及NetEase,以及以及郑安格大学,中央科学技术大学,杭州电力和其他学校的新移民。在日常业务发展外,该团队还在云本地,区块链,人工智能,低 - 低 - 低 - 低 - 低 -代码平台,中间件,大数据,材料系统,工程平台,性能经验,可视化和其他领域,促进了促销促销系列内部技术产品,以继续探索技术的新界限。此外,该团队已加入社区建设。目前,这已经是对许多出色的开源社区的贡献您想开始扔;如果您想更改警告,则需要有更多的想法,但是您不能打破游戏。如果您想更改,您有能力取得结果,但您不需要您;如果您想改变自己想做的事情,则需要一个团队来支持它,但是没有地方可以带人。如果您想改变原始的理解,但始终对窗纸的模糊……如果您相信相信的力量,我相信普通人可以实现非凡的事物,并相信他们可以遇到更好的自我。您想参与推动业务的过程,促进技术团队的增长过程,并具有深入的业务理解,完美的技术系统,技术创建和有影响力的技术团队,我认为我们应该在任何时候进行交谈。 等待您写点东西,将其发送到ZCY-TC@CAI-FOUND
该文章同时发布,公共帐户
原始:https://juejin.cn/post/7096663880330203661