高并发架构实战 Day44

ELK基本都用过,一条日志在入库时,它的具体内容并不会被真实保存在倒排索引中。 在日志入库之前,会先进行分词,过滤掉无用符号等分隔词,找出文档中每个关键词(Term)在文档中的位置及频率权重;然后,将这些关键词保存在 Term Index 以及 Term Dictionary 内;最后,将每个关键词对应的文档 ID 和权重、位置等信息排序合并到 Posting List 中进行保存。通过上述三个结构就实现了一个优化磁盘 IO 的倒排索引。 而查询时,Elasticsearch 会将用户输入的关键字通过分词解析出来,在内存中的 Term Index 单词索引查找到对应 Term Dictionary 字典的索引所在磁盘的 block。接着,由 Term Dictionary 找到对关键词对应的所有相关文档 DocId 及权重,并根据保存的信息和权重算法对查询结果进行排序返回结果。

相关推荐
轻语呢喃2 小时前
JavaScript :字符串模板——优雅编程的基石
前端·javascript·后端
MikeWe2 小时前
Paddle张量操作全解析:从基础创建到高级应用
后端
岫珩2 小时前
Ubuntu系统关闭防火墙的正确方式
后端
心之语歌2 小时前
Java高效压缩技巧:ZipOutputStream详解
java·后端
不死的精灵3 小时前
【Java21】在spring boot中使用ScopedValue
java·spring boot·后端
M1A13 小时前
TCP/IP协议精解:IP协议——互联网世界的邮政编码系统
后端·网络协议·tcp/ip
逸风尊者4 小时前
开发易掌握的知识:GeoHash查找附近空闲车辆
java·后端
程序猿阿越5 小时前
Kafka源码(一)Controller选举与创建Topic
java·后端·源码
程序员爱钓鱼5 小时前
Go语言项目工程化 — 常见开发工具与 CI/CD 支持
开发语言·后端·golang·gin
Jiude5 小时前
MinIO 社区版被故意阉割,Web管理功能全面移除。我来试试国产RustFS
后端·docker·架构