ADR-001:使用 Halo 内置 Lucene
- 状态:已采纳
- 决策日期:项目早期架构阶段
背景
插件需要同时支持关键词和向量检索,但目标用户主要是个人博客和中小型内容站,不希望额外部署向量数据库。
决策
使用与 Halo 2.24 对齐的 Lucene 10.3.2:BM25 负责关键词召回,HNSW 负责向量召回,RRF 融合排名。核心 Lucene 依赖使用 compileOnly 复用 Halo ClassLoader;SmartCN 单独打包且禁止传递引入 Core。
后果
- 优点:单体部署、运维简单、索引可本地重建。
- 代价:Lucene 必须与 Halo 严格对齐;大规模分布式检索不是当前目标。
- 升级要求:Halo 升级前检查 Lucene 版本和索引兼容性。