Pgvector 0.1.1
pgvector-dotnet
pgvector support for C#
Supports Npgsql
Getting Started
Run:
dotnet add package Pgvector
And follow the instructions for your database library:
Npgsql
Import the library
using Pgvector.Npgsql;
Create a table
await using (var cmd = new NpgsqlCommand("CREATE TABLE items (embedding vector(3))", conn))
{
await cmd.ExecuteNonQueryAsync();
}
Insert a vector
await using (var cmd = new NpgsqlCommand("INSERT INTO items (embedding) VALUES ($1)", conn))
{
var embedding = new Vector(new float[] { 1, 1, 1 });
cmd.Parameters.AddWithValue(embedding);
await cmd.ExecuteNonQueryAsync();
}
Get the nearest neighbors
await using (var cmd = new NpgsqlCommand("SELECT * FROM items ORDER BY embedding <-> $1 LIMIT 5", conn))
{
var embedding = new Vector(new float[] { 1, 1, 1 });
cmd.Parameters.AddWithValue(embedding);
await using (var reader = await cmd.ExecuteReaderAsync())
{
while (await reader.ReadAsync())
Console.WriteLine((Vector) reader.GetValue(0));
}
}
Add an approximate index
await using (var cmd = new NpgsqlCommand("CREATE INDEX my_index ON items USING ivfflat (embedding vector_l2_ops)", conn))
{
await cmd.ExecuteNonQueryAsync();
}
Use vector_ip_ops for inner product and vector_cosine_ops for cosine distance
See a full example
Contributing
Everyone is encouraged to help improve this project. Here are a few ways you can help:
- Report bugs
- Fix bugs and submit pull requests
- Write, clarify, or fix documentation
- Suggest or add new features
To get started with development:
git clone https://github.com/pgvector/pgvector-dotnet.git
cd pgvector-dotnet
createdb pgvector_dotnet_test
dotnet test
Showing the top 20 packages that depend on Pgvector.
| Packages | Downloads |
|---|---|
|
WillowMedia.Orm.Npgsql
Package Description
|
105 |
|
WillowMedia.Orm.Npgsql
Package Description
|
84 |
|
WillowMedia.Orm.Npgsql
Package Description
|
75 |
|
WillowMedia.Orm.Npgsql
Package Description
|
69 |
|
WillowMedia.Orm.Npgsql
Package Description
|
40 |
|
WillowMedia.Orm.Npgsql
Package Description
|
35 |
|
WillowMedia.Orm.Npgsql
Package Description
|
29 |
|
WillowMedia.Orm.Npgsql
Package Description
|
28 |
|
WillowMedia.Orm.Npgsql
Package Description
|
24 |
|
WillowMedia.Orm.Npgsql
Package Description
|
19 |
|
WillowMedia.Orm.Npgsql
Package Description
|
17 |
|
WillowMedia.Orm.Npgsql
Package Description
|
11 |
|
WillowMedia.Orm.Npgsql
Package Description
|
7 |
|
WillowMedia.Orm.Npgsql
Package Description
|
6 |
|
WillowMedia.Orm.Npgsql
Package Description
|
5 |
|
WillowMedia.Orm.Npgsql
Package Description
|
4 |
.NET 7.0
- Npgsql (>= 7.0.2)