一 什么是 Elasticsearch?
Elasticsearch(ES) 是一个分布式搜索引擎,专门用
正排索引(传统数据库):
文档1 → ["库存", "组织", "ID"]
文档2 → ["业务", "实体", "ID"]
倒排索引(Elasticsearch):
"库存" → [文档1]
"组织" → [文档1]
"ID" → [文档1, 文档2]
"业务" → [文档2]
"实体" → [文档2]
于全文检索。
🏗️ 架构对比
你的项目(rank_bm25):
内存中的 BM25
├── 所有文档加载到内存(134682个)
├── 每次查询都要扫描所有文档
└── 速度慢,内存占用大
Elasticsearch:
分布式索引
├── 文档存储在磁盘(倒排索引)
├── 只扫描包含关键词的文档
└── 速度快,支持海量数据
📖 ES 的核心技术:倒排索引(Inverted Index)
查询 "库存组织" 时:
- 传统方式:扫描所有文档(慢)
- ES 方式:直接查倒排索引 → 文档1(快)
🚀 Elasticsearch 的优势
| 特性 | rank_bm25 | Elasticsearch |
|---|---|---|
| 数据量 | 几千个文档 | 数十亿文档 |
| 查询速度 | 秒级 | 毫秒级 |
| 内存占用 | 高(全部加载) | 低(按需加载) |
| 分布式 | ❌ | ✅ |
| 持久化 | ❌ | ✅ |