在基础设施软件领域,底层内核的升级往往意味着性能的质变。
近日,INFINI Easysearch 2.0 正式发布。最引人注目的变化,莫过于其底层核心——Apache Lucene 的版本从 8.11.4 跨越式升级到了 9.12.0。
这不仅仅是一个版本号的跳变,更代表了 Easysearch 正式拥抱 JDK 21 和 原生向量检索时代。本文将从内核升级、AI 能力、性能压榨和易用性四个维度,深度解读 Easysearch 2.0 带来的技术红利。
一、 内核跨越:Lucene 9.12 与 JDK 21 的强强联手 #
长期以来,Elasticsearch 7.10 及其衍生版本(包括 Easysearch 1.x)都停留在 Lucene 8 系列。虽然稳定,但已难以利用现代硬件的新特性。Easysearch 2.0 的发布,打破了这一僵局。
1. Lucene 9.12.0:搜索技术的集大成者 #
Lucene 9.x 系列引入了大量针对现代 CPU 架构的优化:
- HNSW 索引原生支持:不再依赖插件,内核级支持高性能向量检索。
- 并发搜索优化:大幅提升了多核 CPU 在执行复杂查询时的利用率。
- 动态剪枝(Dynamic Pruning):对于不需要精确算分的查询(如 Top K),性能提升显著。
2. 拥抱 JDK 21 (LTS) #
Easysearch 2.0 运行时环境全面升级至 Java 21。
- Vector API:利用 JDK 的 Vector API,Easysearch 可以直接调用 CPU 的 SIMD 指令集(如 AVX-512),使得向量运算速度成倍提升。
- Generational ZGC:JDK 21 带来的分代 ZGC 垃圾回收器,将 GC 停顿时间控制在 微秒级,彻底解决了大内存堆(Heap)下的“卡顿”痛点。
二、 原生 AI 能力:RAG 架构的最佳底座 #
在 Easysearch 1.x 时代,向量检索往往需要依赖插件。而在 2.0 版本中,向量能力成为了“一等公民”。
1. 极致的向量检索性能 #
得益于 Lucene 9 的 HNSW (Hierarchical Navigable Small World) 图算法实现,Easysearch 2.0 支持十亿级向量的毫秒级召回。
- SIMD 加速:针对 Intel/AMD 的 AVX-512 和 ARM(鲲鹏/飞腾)的 NEON 指令集进行了底层适配。
- 混合检索(Hybrid Search):支持在单次查询中同时执行“关键词匹配(BM25)”和“向量相似度(KNN)”,并利用 RRF(倒数排名融合)算法合并结果。这正是构建 RAG(检索增强生成)应用的核心需求。
2. 标量量化(Scalar Quantization) #
为了节省内存,2.0 引入了标量量化技术,将 32 位浮点数(float32)的向量自动压缩为 8 位整数(int8),内存占用减少 75%,而召回率精度损失极小。
三、 性能与存储:在国产硬件上再突破 #
Easysearch 一直以“省资源”著称,2.0 版本在这一优势上继续加码。
1. 存储结构优化 #
Lucene 9 改进了 Stored Fields 的存储格式。
- 高压缩比:结合 Easysearch 独有的 ZSTD 压缩算法,2.0 版本在存储日志型数据时,磁盘占用比传统 ES 降低 50% 以上。
- 更快的解压:读取速度提升 20%-30%。
2. 多维数值索引(BKD Tree)增强 #
对于日志分析中常见的时间范围查询(Range Query)和数值过滤,Lucene 9 优化了 BKD Tree 的实现。在处理高基数(High Cardinality)的数值字段时,索引构建速度更快,查询延迟更低。
3. 并发合并调度(Concurrent Merge Scheduler) #
2.0 版本优化了后台 Segment 合并的调度算法,能够更智能地感知 I/O 负载。在机械硬盘(HDD)或低性能 SATA SSD 上,写入抖动(Jitter)明显减少,写入吞吐更加平滑。
四、 兼容性与平滑迁移 #
虽然内核发生了巨变,但 INFINI Labs 团队在兼容性上下足了功夫。
1. API 兼容性 #
Easysearch 2.0 保持了对 Elasticsearch 7.10 API 的 99% 兼容。
- 用户现有的 DSL 查询、业务代码、SDK(Java/Python/Go)几乎无需修改即可连接使用。
- 兼容主流的周边生态工具(如 Logstash, Filebeat, Kibana 等)。
2. 跨版本平滑升级 #
通过 INFINI Gateway 的流量治理能力,用户可以实现从 Easysearch 1.x(甚至 ES 7.x)到 Easysearch 2.0 的不停机迁移。
- 支持 Rolling Upgrade(滚动升级)机制。
- 数据文件格式虽然升级,但提供了自动升级工具,确保存量数据可读。
五、 版本对比总结 #
为了更直观地展示 2.0 的变化,我们整理了如下对比表:
| 特性维度 | Easysearch 1.x | Easysearch 2.0 | 价值解读 |
|---|---|---|---|
| 内核版本 | Lucene 8.11.4 | Lucene 9.12.0 | 享受社区最新的性能优化成果 |
| Java 环境 | JDK 8 / 11 | JDK 21 | 极低 GC 延迟,更好的 SIMD 支持 |
| 向量检索 | 依赖插件 / 性能一般 | 内核原生 HNSW | 生产级 AI 搜索底座,性能提升 5-10 倍 |
| 硬件指令集 | 基础支持 | AVX-512 / NEON 深度优化 | 充分榨干国产信创 CPU 性能 |
| 压缩算法 | ZSTD | ZSTD + Lucene 9 新编码 | 极致的存储成本控制 |
| 垃圾回收 | G1 GC | Generational ZGC | 告别“Stop-The-World”卡顿 |
六、 结语 #
Easysearch 2.0 的发布,标志着国产自研搜索引擎在核心技术上迈上了一个新台阶。
如果说 1.x 版本是为了解决“Elasticsearch 停更后的替代与兜底”,那么 2.0 版本则是为了解决“AI 时代企业如何构建高效、低成本的知识检索体系”。对于正在规划 RAG 应用、或苦于 ES 集群资源消耗过大的企业来说,Easysearch 2.0 无疑是目前最具竞争力的选择。





