高并发架构实战 Day44

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

相关推荐
咖啡八杯9 小时前
GoF设计模式——策略模式
java·后端·spring·设计模式
lizhongxuan10 小时前
AI Agent 上下文压缩利器 Headroom
后端
Csvn12 小时前
SSH 远程管理与安全加固 — 运维的守门之道
后端
IT_陈寒12 小时前
Python搞不定字符串编码?这破玩意坑我两小时!
前端·人工智能·后端
菜鸟谢14 小时前
Rust 智能指针完整详解
后端
菜鸟谢14 小时前
Rust 函数完整知识点详解
后端
爱勇宝14 小时前
淡泊名利之前,先承认我们都很焦虑
前端·后端·程序员
菜鸟谢14 小时前
Rust 闭包(Closure)完整详解
后端
ServBay14 小时前
如何利用本地技术栈构建 0 成本 AI SaaS 雏形
后端·aigc·ai编程
菜鸟谢14 小时前
Rust 集合 + 迭代器完整详解
后端