Weaviate 向量数据库指南基本功能Weaviate 是一个开源的 AI 原生的向量数据库专为现代 AI 应用而设计。它采用模块化架构支持多种向量嵌入模型并内置 GraphQL API 用于数据查询。Weaviate 的独特之处在于它能够直接在数据库中执行机器学习推理将向量搜索与 AI 功能无缝集成。Weaviate 的核心功能包括向量存储和相似性搜索内置机器学习推理GraphQL API 支持模块化架构设计云原生和 Kubernetes 支持多种嵌入模型集成核心功能1. 基本操作启动 Weaviateimportweaviatefromweaviate.embeddedimportEmbeddedOptions# 启动嵌入式 Weaviateclientweaviate.Client(embedded_optionsEmbeddedOptions(persistence_data_path./weaviate_data))# 或者连接到远程 Weaviateclientweaviate.Client(http://localhost:8080)创建 schema# 定义 schemaschema{classes:[{class:Article,description:文章类,properties:[{name:title,dataType:[text],description:文章标题},{name:content,dataType:[text],description:文章内容},{name:category,dataType:[text],description:文章分类},{name:vector,dataType:[vector],moduleConfig:{text2vec-transformers:{vectorizeClassName:False}}}]}]}# 创建 schemaclient.schema.create_class(schema[classes][0])添加数据# 添加文章数据article{title:AI 技术发展,content:人工智能技术正在快速发展...,category:technology}# 使用 GraphQL 添加数据client.data_object.create(data_objectarticle,class_nameArticle,uuidarticle-1)2. 向量搜索基本向量搜索# 使用 GraphQL 进行向量搜索query { Get { Article( limit: 3 nearVector: { vector: [0.1, 0.2, 0.3, ...] distance: cosine } ) { title content _additional { distance } } } } resultclient.query.raw(query)带过滤条件的搜索# 带过滤条件的向量搜索query { Get { Article( limit: 3 nearVector: { vector: [0.1, 0.2, 0.3, ...] distance: cosine } where: { path: [category] operator: Equal valueText: technology } ) { title content category _additional { distance } } } } resultclient.query.raw(query)3. 模块化功能text2vec-transformers 模块# 使用 transformers 进行向量化schema{classes:[{class:Document,properties:[{name:text,dataType:[text]},{name:vector,dataType:[vector],moduleConfig:{text2vec-transformers:{model:sentence-transformers/all-MiniLM-L6-v2,vectorizeClassName:False}}}]}]}text2vec-contextionary 模块# 使用 contextionary 进行向量化schema{classes:[{class:Document,properties:[{name:text,dataType:[text]},{name:vector,dataType:[vector],moduleConfig:{text2vec-contextionary:{vectorizeClassName:False}}}]}]}img2vec-neural 模块# 使用 neural 进行图像向量化schema{classes:[{class:Image,properties:[{name:image,dataType:[blob]},{name:vector,dataType:[vector],moduleConfig:{img2vec-neural:{imageFields:[image]}}}]}]}4. 批量操作批量导入数据# 批量导入数据data_objects[{class:Article,data_object:{title:文章 1,content:内容 1,category:tech}},{class:Article,data_object:{title:文章 2,content:内容 2,category:science}}]client.batch.batch_objects(data_objects)批量删除数据# 批量删除数据client.batch.delete_objects(class_nameArticle,where{path:[category],operator:Equal,valueText:old})技术特点1. AI 原生设计内置机器学习直接在数据库中执行推理支持多种预训练模型无需额外 ML 服务模块化架构可插拔的模块设计支持自定义模块模块热插拔智能向量化自动数据向量化多种嵌入模型支持上下文感知向量化2. GraphQL API灵活的查询语言GraphQL 查询语法嵌套查询支持自定义查询逻辑强大的过滤能力复杂的过滤条件元数据过滤全文搜索支持实时数据操作实时数据插入实时数据更新实时数据删除3. 分布式架构云原生设计Kubernetes 原生支持容器化部署自动扩展高可用性多副本存储故障自动恢复数据一致性保证水平扩展节点动态添加负载均衡数据分片4. 开发者体验简单的 API直观的 Python 客户端丰富的文档和示例快速上手监控和调试内置监控面板详细的日志记录性能指标部署灵活嵌入式部署独立部署云服务部署性能分析1. 查询性能响应时间毫秒级查询响应受数据规模和查询复杂度影响网络延迟在分布式环境中占比较大吞吐量高并发查询支持批量操作优化连接池管理性能影响因素数据规模数据量越大查询越慢索引类型不同索引的性能差异硬件配置CPU、内存、网络性能模块选择不同模块的性能差异2. 存储效率存储开销向量数据存储元数据存储索引结构存储模型存储压缩效果向量数据压缩索引压缩模型压缩空间优化数据去重增量存储冷热数据分离3. 内存使用内存占用向量数据缓存索引数据缓存模型缓存查询缓存内存管理智能缓存策略内存限制配置垃圾回收优化性能监控内存使用监控缓存命中率统计性能指标收集4. 可扩展性垂直扩展单节点资源优化性能调优容量规划水平扩展多节点部署负载均衡数据分片扩展限制内存模式扩展性有限持久化模式的扩展能力网络带宽限制应用场景1. 搜索和推荐智能搜索语义搜索功能相关性排序搜索结果优化推荐系统个性化推荐协同过滤实时推荐更新问答系统智能问答上下文理解多轮对话支持2. 内容管理文档管理企业文档检索知识库搜索文档分类管理媒体管理图像搜索视频内容检索媒体分类内容创作创意内容推荐内容生成辅助创意灵感激发3. AI 应用机器学习模型特征存储向量化数据管理模型训练数据管理自然语言处理语义搜索文档聚类情感分析计算机视觉图像特征搜索视觉相似性匹配物体识别4. 企业应用知识管理企业知识库专家系统决策支持客户服务智能客服问题匹配客户意图识别数据分析数据关联分析异常检测预测分析优缺点优点AI 原生专为 AI 应用设计内置机器学习功能模块化架构可插拔的模块设计灵活扩展GraphQL API强大的查询能力和灵活性云原生支持现代化的云部署和运维支持开箱即用快速部署和使用无需复杂配置生态系统丰富活跃的社区和丰富的文档多模态支持支持文本、图像等多种数据类型实时推理直接在数据库中执行 ML 推理高可用性内置的故障恢复和冗余机制扩展性强支持水平和垂直扩展缺点学习曲线GraphQL 和模块化概念需要学习资源消耗对内存和计算资源要求较高配置复杂模块配置和参数调优相对复杂生态系统相对较小相比成熟数据库生态系统较小生产经验不足在生产环境中的应用经验相对较少文档深度高级功能的文档相对较少成本较高云服务版本成本相对较高适用场景Weaviate 最适合以下场景AI 应用和机器学习项目需要实时推理的智能应用多模态数据处理需求云原生和 Kubernetes 环境对查询灵活性要求高的应用需要内置 ML 功能的项目现代化的 AI 驱动应用使用建议选择合适的模块根据数据类型选择合适的向量化模块优化查询设计合理设计 GraphQL 查询以提高性能配置资源根据应用需求合理配置计算资源监控性能定期监控性能指标并优化备份策略制定合理的数据备份和恢复策略最佳实践数据建模合理设计 schema 和属性模块选择根据应用场景选择合适的模块索引优化合理配置索引以提高查询性能错误处理完善的错误处理和日志记录版本管理维护数据版本和迁移策略