Skip to content

ADR-001:使用 Halo 内置 Lucene

  • 状态:已采纳
  • 决策日期:项目早期架构阶段

背景

插件需要同时支持关键词和向量检索,但目标用户主要是个人博客和中小型内容站,不希望额外部署向量数据库。

决策

使用与 Halo 2.24 对齐的 Lucene 10.3.2:BM25 负责关键词召回,HNSW 负责向量召回,RRF 融合排名。核心 Lucene 依赖使用 compileOnly 复用 Halo ClassLoader;SmartCN 单独打包且禁止传递引入 Core。

后果

  • 优点:单体部署、运维简单、索引可本地重建。
  • 代价:Lucene 必须与 Halo 严格对齐;大规模分布式检索不是当前目标。
  • 升级要求:Halo 升级前检查 Lucene 版本和索引兼容性。

基于 GPL-3.0 许可发布