qdrant-dotnet:官方提供的开源 .NET 客户端库,用于与 Qdrant 向量搜索引擎操作!

基于AI开发应用,已经是非常流行了,特别是AI 增强应用(如 RAG)。而开发AI应用,必须用到向量数据库。

Qdrant就是一个开源的向量相似度搜索引擎,专为高效存储、检索和管理高维向量(embeddings)而设计。它不仅支持向量搜索,还允许为每个向量附加结构化元数据(称为 payload),从而实现更灵活、精准的语义搜索和混合检索。

qdrant-dotnet就是Qdrant官方提供的开源 .NET 客户端库,同时也提供Python、Go、JavaScript、Rust 等客户端。

01 项目简介

该客户端库提供了对 Qdrant REST API 和 gRPC 接口的完整封装,主要功能包括:

  1. 向量操作

    • 插入(upsert)、更新、删除向量点(points)

    • 批量导入向量数据

  2. 向量搜索

    • 支持多种距离度量(余弦、点积、欧氏距离等)

    • 支持带 payload 过滤条件的语义搜索

    • 支持按 ID 精确检索

  3. 集合(Collection)管理

    • 创建、删除、更新集合

    • 配置向量维度、索引类型、存储选项等

  4. Payload 操作

    • 为每个向量附加结构化元数据(payload)

    • 支持基于 payload 的过滤(例如 {"category": "electronics"}

  5. 异步支持

    • 全面使用 async/await,适合高并发应用
  6. gRPC 支持

    • 除默认的 HTTP/REST 外,也支持更高效的 gRPC 协议(需 Qdrant 服务启用 gRPC)

02 使用方法

1、安装依赖

复制代码
dotnet add package Qdrant.Client

2、保存向量并搜索

cs 复制代码
using Qdrant.Client;
using Qdrant.Client.Grpc;
// 创建客户端
var client = new QdrantClient("localhost", port: 6333);
// 创建集合
await client.CreateCollectionAsync(
    collectionName: "example",
    vectorsConfig: new VectorParams { Size = 4, Distance = Distance.Cosine }
);
// 插入向量
await client.UpsertAsync(
    collectionName: "example",
    points: new[]
    {
        new PointStruct
        {
            Id = 1,
            Vectors = new float[] { 0.1f, 0.2f, 0.3f, 0.4f },
            Payload = { ["name"] = "item_1" }
        }
    }
);
// 搜索
var results = await client.SearchAsync(
    collectionName: "example",
    queryVector: new float[] { 0.15f, 0.25f, 0.35f, 0.45f },
    limit: 3
);

03 项目地址

https://github.com/qdrant/qdrant-dotnet

  • End -
相关推荐
唐青枫2 小时前
别再手写 args[0]:C#.NET CommandLineParser 命令行工具实战详解
c#·.net
LccKyI3 小时前
C#学习day06(方法/函数及其关键字,附思维导图)
经验分享·学习·c#
.Peter3 小时前
.NET/WPF 程序在部分 Windows 电脑无法保存用户环境变量:使用 DPAPI 实现安全兼容
windows·信息安全·c#·.net·wpf·环境变量·dpapi
农村小镇哥4 小时前
怎么把HTM格式转化成WORD
ui·c#·word
农村小镇哥4 小时前
C#读取CSV文件的方法
服务器·数据库·c#
FuckPatience5 小时前
C# 报错参数无效
c#
北域码匠20 小时前
PID 控制算法完整详解(C# 原生实现,无第三方库)
c#·pid控制·工控开发·闭环控制·自动控制算法·数字pid·增量式pid
离陌在学C#20 小时前
C# 重载与重写:深入理解面向对象编程的核心概念
java·c#
asdzx671 天前
Java 实战:基于 Spire.Doc 高效提取 Word 文档文本与图片
java·c#·word
小金子会发光1 天前
C# WinForms 基于 Socket 手搓 Modbus TCP 调试助手(支持 01/02/03/04/05/06/0F/10)
c#·socket·plc·modbus tcp·工业通信