Typesense 向量数据库
Spring AI 支持将 Typesense 作为向量数据库。添加依赖
要使用 Typesense 向量存储,您需要将spring-ai-typesense-store-spring-boot-starter 依赖项添加到项目的 pom.xml 文件中。
该启动器包含了 spring-ai-core 和 Typesense Java 客户端库。
EmbeddingClient 实现来为您的文档生成向量嵌入。例如,您可以添加 spring-ai-openai-spring-boot-starter 以使用 OpenAI 的嵌入模型:
配置属性
在您的application.properties 或 application.yml 文件中配置 Typesense 和嵌入客户端属性。
Typesense 属性
示例
application.properties:
确保
spring.ai.vectorstore.typesense.embedding-dimension 与您正在使用的 EmbeddingClient 输出的嵌入维度相匹配。使用 VectorStore
将 VectorStore bean 注入到您的组件中以与之交互:
创建 TypesenseVectorStore Bean (可选)
Spring Boot 会自动配置 TypesenseVectorStore bean。但是,如果您需要自定义配置,可以定义自己的 bean:
元数据过滤
Typesense 向量存储支持使用 Typesense 的 filter_by 查询参数 和 Spring AI 的 相似性搜索过滤器表达式 进行元数据过滤。 过滤器表达式会转换为 Typesense 的filter_by 字符串格式。
示例:
确保用于过滤的元数据字段存在于您的 Typesense 集合 schema 中,并根据 Typesense 的要求进行适当定义 (例如,将它们定义为
facet: true 以进行高效过滤)。
Typesense 对 filter_by 语法有特定的要求。Spring AI 的 FilterExpressionConverter 尽力将其转换为兼容的格式,但复杂的嵌套表达式可能无法完全支持或需要仔细构建。删除数据
TypesenseVectorStore 支持通过文档 ID 删除数据。
总结
将 Spring AI 与 Typesense 集成,提供了一种快速且易于使用的向量搜索解决方案,利用了 Typesense 的内存性能和对开发人员友好的特性。文档有误?请协助编辑
发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档!