Sylin.Koan.Data.Vector.Connector.Qdrant
1.0.2
See the version list below for details.
dotnet add package Sylin.Koan.Data.Vector.Connector.Qdrant --version 1.0.2
NuGet\Install-Package Sylin.Koan.Data.Vector.Connector.Qdrant -Version 1.0.2
<PackageReference Include="Sylin.Koan.Data.Vector.Connector.Qdrant" Version="1.0.2" />
<PackageVersion Include="Sylin.Koan.Data.Vector.Connector.Qdrant" Version="1.0.2" />
<PackageReference Include="Sylin.Koan.Data.Vector.Connector.Qdrant" />
paket add Sylin.Koan.Data.Vector.Connector.Qdrant --version 1.0.2
#r "nuget: Sylin.Koan.Data.Vector.Connector.Qdrant, 1.0.2"
#:package Sylin.Koan.Data.Vector.Connector.Qdrant@1.0.2
#addin nuget:?package=Sylin.Koan.Data.Vector.Connector.Qdrant&version=1.0.2
#tool nuget:?package=Sylin.Koan.Data.Vector.Connector.Qdrant&version=1.0.2
Sylin.Koan.Data.Vector.Connector.Qdrant
Use Qdrant through Koan's Entity-first vector API. The application declares a vector space once; the adapter realizes its shape, source policy, isolation, visibility, filtering, and similarity semantics over Qdrant.
Declare the space
dotnet add package Sylin.Koan.Data.Vector.Connector.Qdrant
public sealed class Article : Entity<Article>;
services.AddKoan(koan => koan.Data
.Source("Search")
.Vector<Article>(space => space
.Name("content")
.Dimensions(1536)
.Metric(VectorMetric.Cosine)
.Visibility(VectorVisibility.Session)));
Name, Dimensions, Metric, and Visibility are application decisions. They are not repeated in Qdrant options.
Referencing the package activates the adapter; no provider client or collection bootstrap belongs in application code.
Save and search
await Vector<Article>.Save(article.Id, embedding, new
{
article.Category,
article.Language
});
var matches = await Vector<Article>.Search(embedding, query => query
.Top(12)
.Where(Filter.All(
Filter.Eq("Category", "support"),
Filter.In("Language", ["en", "fr"]))));
Awaited saves and deletes are visible to subsequent operations in Session mode. Search results expose a normalized
Similarity in [0,1], where larger always means closer, for cosine, Euclidean, and dot-product spaces.
Configure placement
Qdrant at http://localhost:6333 needs no configuration. Set placement or authentication only when they differ:
{
"Koan": {
"Data": {
"Qdrant": {
"Endpoint": "https://cluster.example.qdrant.io",
"ApiKey": "use-a-secret-provider"
}
}
}
}
Use Koan:Data:Sources:{name} for source-specific endpoints and standard Access or StorageLifecycle policy. A
read-only source rejects mutations before provider I/O. An external source validates existing storage and never creates
or repairs it.
Guarantees and limits
- Managed writes create a missing collection from the immutable vector-space plan; every existing collection is validated for the declared named-vector dimensions and metric.
- Arbitrary Entity IDs round-trip without exposing Qdrant's UUID/u64 restriction. Source, partition, and row scopes participate in physical isolation.
- Neutral metadata round-trips losslessly. A separate provider-native projection supports declared payload filters.
- Batch outcomes preserve input order and report
BatchAtomicity.NotGuaranteed. - Clear removes only points in the active scope; it does not drop the collection.
- Dense search is reported as approximate. Candidate expansion is bounded and fails when a stable cutoff cannot be proven within the configured limit.
- Eventual visibility, hybrid text search, search continuations, streaming export, and atomic batches are declined explicitly. Unsupported filter operators fail closed.
Operator budgets are available through QdrantOptions: request timeout, per-point metadata bytes, batch points,
search candidates, and response bytes. They bound work; they do not redefine vector semantics.
See TECHNICAL.md for the provider realization and failure contract.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Configuration (>= 10.0.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.10)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.10)
- Microsoft.Extensions.Configuration.Json (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Hosting (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Http (>= 10.0.10)
- Microsoft.Extensions.Logging (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Logging.Console (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.10)
- Newtonsoft.Json (>= 13.0.4)
- Sylin.Koan.Core (>= 1.0.4 && < 2.0.0)
- Sylin.Koan.Data.Abstractions (>= 1.0.2 && < 2.0.0)
- Sylin.Koan.Data.Core (>= 1.0.2 && < 2.0.0)
- Sylin.Koan.Data.Vector (>= 1.0.2 && < 2.0.0)
- Sylin.Koan.Data.Vector.Abstractions (>= 1.0.2 && < 2.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.21 | 41 | 8/30/2026 |
| 1.0.20 | 41 | 8/30/2026 |
| 1.0.18 | 46 | 8/28/2026 |
| 1.0.17 | 43 | 8/28/2026 |
| 1.0.16 | 37 | 8/28/2026 |
| 1.0.15 | 34 | 8/28/2026 |
| 1.0.14 | 42 | 8/28/2026 |
| 1.0.13 | 70 | 8/27/2026 |
| 1.0.8 | 92 | 8/25/2026 |
| 1.0.7 | 93 | 8/24/2026 |
| 1.0.5 | 78 | 8/22/2026 |
| 1.0.2 | 104 | 8/20/2026 |
| 1.0.0 | 128 | 8/14/2026 |
| 0.21.1 | 88 | 8/14/2026 |
| 0.21.0 | 117 | 7/30/2026 |
| 0.20.3 | 114 | 7/23/2026 |
| 0.20.1 | 108 | 7/22/2026 |
| 0.20.0 | 139 | 7/22/2026 |
| 0.17.0 | 109 | 6/12/2026 |