返回

文章详情

Qdrant 输出连接器

Hacker News2026年8月14日 16:35

功能发布 2026年7月29日 • 阅读时间 5分钟 我们很高兴地宣布,Qdrant 输出连接器(oc-qdrant-output-connector)正式推出!OpenCrawling 现在可以原生连接企业文档存储库到 Qdrant——开源的、基于 Rust 的向量搜索引擎——提供高速二进制 gRPC 更新、自动集合自动配置、标量量化和亚毫秒级的 ACL 有效负载预过滤,以确保安全的 RAG。 01. 为什么选择 Qdrant 进行企业向量搜索? 随着 AI 应用在企业生态系统中的扩展,向量存储对极端查询吞吐量、低内存占用和严格的安全保障的需求日益增加。虽然向量数据库在相似性搜索方面表现出色,但企业内容存储库(如 SharePoint、Alfresco 和 Iceberg)需要文档级的访问控制列表(ACL),以确保用户仅检索他们有明确权利查看的信息。Qdrant 采用 Rust 进行工程设计,并结合 SIMD 硬件加速,成为现有最快的向量引擎之一。但真正使 Qdrant 在企业 RAG 中独树一帜的是其有效负载索引引擎。通过直接支持关键字有效负载索引与向量点并行,Qdrant 允许在计算距离之前通过有效负载属性(如用户安全 SID)进行过滤,从而防止安全泄漏,而不损失搜索性能。⚡ 亚毫秒级 ACL 预过滤:Qdrant 的有效负载索引允许 OpenCrawling 的 McpVectorServer 将文档 ACL 过滤器直接注入相似性查询,确保零未授权向量返回。 02. 架构与解耦数据流 oc-qdrant-output-connector 直接集成到 OpenCrawling 的事件驱动解耦微服务架构:解耦摄取管道 → Qdrant 集合存储库连接器 → Apache Kafka → Tika & Token 拆分器 → oc-embedding-service → Qdrant 输出连接器(gRPC) 存储库摄取:存储库连接器(文件系统、Alfresco、Flowable、Camunda、S3)发现文档并将轻量级索赔检查消息发布到 Kafka。 文本提取与分块:IngestionConsumer 通过 Apache Tika 提取干净的文本,并生成带有相关文档 ACL 安全 SID 的分块有效负载。 可扩展嵌入:oc-embedding-service 动态计算向量嵌入(通过 Ollama 或 OpenAI),并将嵌入的块推送到 Kafka。 高速二进制更新:QdrantStoreWriterConsumer 接收嵌入的块,并通过 gRPC Java SDK(io.qdrant:client)将 PointStruct 批次更新到 Qdrant,端口为 6334。 03. 自动集合配置与有效负载 ACL 索引 启动时,QdrantCollectionInitializer 验证配置的目标集合(例如 enterprise_kb )是否存在。如果不存在,它会自动配置集合,并设定所需的向量维度和距离度量(COSINE、DOT 或 EUCLID)。同时,连接器在安全有效负载字段上创建关键字有效负载索引:security_allowed_read:被允许访问文档的用户/组 SID 列表。 security_denied_read:覆盖允许规则的明确拒绝 SID。 // 示例 Qdrant 点有效负载结构由 oc-qdrant-output-connector 生成 { "id": "c8a912e4-712d-4b92-b2fa-1092a9f1a091", "vector": [0.0142, -0.0521, 0.0892, ...], "payload": { "text": "企业季度财务报告和预测......", "uri": "file:///data/finance/q3_report.pdf", "security_allowed_read": ["ROLE_FINANCE", "USER_S-1-5-21-3623811015"], "security_denied_read": ["ROLE_EXTERN"], "lastModified": "2026-07-29T18:00:00Z" } } 04. 配置与部署 Qdrant 输出连接器可以通过标准的 Spring Boot YAML 属性或环境变量进行完全配置: 属性 环境变量 默认 描述 spring.opencrawling.output.qdrant.host SPRING_OPENCRAWLING_OUTPUT_QDRANT_HOST localhost 自托管 Qdrant 或 Qdrant Cloud 实例的主机名 spring.opencrawling.output.qdrant.port SPRING_OPENCRAWLING_OUTPUT_QDRANT_PORT 6334 高性能 gRPC 端口(默认:6334) spring.opencrawling.output.qdrant.api-key SPRING_OPENCRAWLING_OUTPUT_QDRANT_API_KEY "" Qdrant Cloud 或企业集群的可选 API 密钥 spring.opencrawling.output.qdrant.collection-name SPRING_OPENCRAWLING_OUTPUT_QDRANT_COLLECTION_NAME enterprise_kb 目标 Qdrant 向量集合名称 spring.opencrawling.output.qdrant.dimensions SPRING_OPENCRAWLING_OUTPUT_QDRANT_DIMENSIONS 1024 向量维度大小(例如 1024 对于 mxbai-embed-large) spring.opencrawling.output.qdrant.distance SPRING_OPENCRAWLING_OUTPUT_QDRANT_DISTANCE COSINE 向量距离度量(COSINE、DOT、EUCLID) spring.opencrawling.output.qdrant.quantization SPRING_OPENCRAWLING_OUTPUT_QDRANT_QUANTIZATION NONE 量化模式(NONE、SCALAR、BINARY) 🧪 自动集成测试:您可以通过一条命令在本地测试端到端的 Qdrant 管道:./scripts/test-qdrant-decoupled.sh。该脚本会启动 Qdrant、Ollama、Kafka 和 OpenCrawling 微服务,注入一个测试文档,

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡