Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure Cosmos DB bietet jetzt Unterstützung für die Vektor-Ähnlichkeitssuche. Die Vektorsuche ist ein grundlegender Bestandteil einiger Anwendungstypen, darunter KI und semantische Suche. Mit Azure Cosmos DB können Vektoren zusammen mit Ihren restlichen Daten direkt in Ihren Dokumenten gespeichert werden, was bedeutet, dass Sie alle Ihre Abfragen für eine einzelne Datenbank ausführen können. Dies kann Ihre Architektur erheblich vereinfachen und dazu führen, dass Sie ohne zusätzliche dedizierte Vektordatenbanklösung in Ihrem Stapel auskommen. Weitere Informationen zur Azure Cosmos DB-Vektorsuche finden Sie in der Dokumentation.
Vector-Eigenschaft kann innerhalb OnModelCreating
konfiguriert werden.
public class Blog
{
...
public float[] Vector { get; set; }
}
public class BloggingContext
{
...
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>(b =>
{
b.Property(b => b.Vector).IsVectorProperty(DistanceFunction.Cosine, dimensions: 1536);
b.HasIndex(x => x.Vector).IsVectorIndex(VectorIndexType.Flat);
});
}
}
An diesem Punkt ist Ihr Modell konfiguriert. Das Einfügen von Vektordaten erfolgt wie jeder andere Datentyp mit EF:
float[] vector = /* generate vector data from text, image, etc. */
context.Add(new Blog { Vector = vector });
await context.SaveChangesAsync();
Verwenden Sie schließlich die EF.Functions.VectorDistance()
Funktion in LINQ-Abfragen, um die Vektorgleichheitssuche auszuführen:
float[] anotherVector = /* generate vector data from text, image, etc. */
var blogs = await context.Blogs
.OrderBy(s => EF.Functions.VectorDistance(s.Vector, anotherVector))
.Take(5)
.ToListAsync();
Dies gibt die fünf wichtigsten Blogs basierend auf der Ähnlichkeit ihrer Vector
Eigenschaft und den extern bereitgestellten anotherVector
Daten zurück.
Hybridsuche
Die Vektorähnlichkeitssuche kann mit der Volltextsuche in derselben Abfrage (d. h. hybride Suche) verwendet werden, indem Ergebnisse von VectorDistance
und FullTextScore
Funktionen mithilfe der RRF
Funktion "reziproke Rangfusion" kombiniert werden.
In der Dokumentation erfahren Sie, wie Sie die Unterstützung der Volltextsuche im EF-Modell aktivieren und die Hybridsuche in Abfragen verwenden.