Skip to content

plugin-vectorstore-flat — 平面文件向量存储

包名: @aalis/plugin-vectorstore-flat
源码: packages/plugin-vectorstore-flat/src/index.ts

概述

基于 JSON 文件的平面向量存储,适合轻量/开发场景。

插件声明

typescript
meta.name = '@aalis/plugin-vectorstore-flat'
meta.provides = ['vectorstore']
meta.inject = { required: ['storage'] }

向量全部存在 storage 上的 vectors.json 里,没有 storage 既读不出也写不进,故 storage 是必需依赖。声明 required 换来 app.stop() 时的拓扑保证:消费者先关、提供者后关;单独禁用或热重载 storage 时没有这条保证;落盘由调用方调用 save() 触发(见 api-vectorstore 契约),dispose 时的保存是兜底冲刷。

配置

字段类型默认值说明
pathstring'data:/vectorstore'存储目录:JSON 向量文件存储目录(storage URI)。也兼容旧格式 “data/vectorstore”。

特性

  • 向量归一化后写入 vectors.json
  • 搜索时使用余弦相似度(归一化后等价于点积)排序取 topK
  • 支持 add / search / clear / save / size
  • dispose 时自动保存,并等待落盘完成后才结束拆卸(依赖 storage 必需声明带来的关停顺序)
  • 数据文件损坏(解析失败)或内容不是数组时告警并按空库启动,不影响后续写入
  • 适合开发调试和小规模数据,大规模场景建议使用 plugin-vectorstore-lancedb