Quickstart USearch in C#
mainInitialize a USearchIndex by specifying the metric, quantization type, and dimensions. You can then add vectors using Add and perform similarity searches using Search.
Key Parameters for USearchIndex constructor:
metricKind: The distance metric (e.g.,MetricKind.Cos).quantization: The scalar type (e.g.,ScalarKind.Float32,Float64,BFloat16,Float16,E5M2,E4M3,E3M2,E2M3,Int8,UInt8).dimensions: Number of dimensions in the input vectors.connectivity(optional): Frequency of connections in the graph.expansionAdd(optional): Controls indexing recall.expansionSearch(optional): Controls search quality.
using System.Diagnostics;
using Cloud.Unum.USearch;
using var index = new USearchIndex(
metricKind: MetricKind.Cos, // Choose cosine metric
quantization: ScalarKind.Float32, // or Float64, BFloat16, Float16, E5M2, E4M3, E3M2, E2M3, Int8, UInt8
dimensions: 3, // Define the number of dimensions in input vectors
connectivity: 16, // How frequent should the connections in the graph be, optional
expansionAdd: 128, // Control the recall of indexing, optional
expansionSearch: 64 // Control the quality of search, optional
);
var vector = new float[] { 0.2f, 0.6f, 0.4f };
index.Add(42, vector);
int matches = index.Search(vector, 10, out ulong[] keys, out float[] distances);
Trace.Assert(index.Size() == 1);
Trace.Assert(matches == 1);
Trace.Assert(keys[0] == 42);
Trace.Assert(distances[0] <= 0.001f);