Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
A continuación se describe la compatibilidad con la búsqueda vectorial en EF 10. EF 9 incluye compatibilidad experimental similar con nomenclatura de métodos ligeramente diferente.
Azure Cosmos DB ahora ofrece compatibilidad con la búsqueda de similitud de vectores. El vector de búsqueda es una parte fundamental de algunos tipos de aplicaciones, incluye IA, la búsqueda semántica y otras. Azure Cosmos DB le permite almacenar vectores directamente en sus documentos junto con el resto de sus datos, lo que significa que puede realizar todas sus consultas en una única base de datos. Esto puede simplificar considerablemente su arquitectura y eliminar la necesidad de una solución de base de datos de vectores adicional y dedicada en su pila. Para obtener más información sobre el vector de búsqueda en Azure Cosmos DB, consulte la documentación.
La propiedad vector se puede configurar dentro de OnModelCreating.
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);
});
}
}
En este punto su modelo está configurado. La inserción de datos vectoriales se realiza como cualquier otro tipo de datos con EF:
float[] vector = /* generate vector data from text, image, etc. */
context.Add(new Blog { Vector = vector });
await context.SaveChangesAsync();
Por último, use la función EF.Functions.VectorDistance() en las consultas LINQ para realizar la búsqueda de similitud vectorial:
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();
Devolverá los cinco primeros Blogs, basándose en la similitud de su propiedad Vector y los datos anotherVector proporcionados externamente.
Búsqueda híbrida
La búsqueda de similitud de vectores se puede usar con la búsqueda de texto completo en la misma consulta (es decir, búsqueda híbrida), mediante la combinación de los resultados de las funciones VectorDistance y FullTextScore usando la función RRF (Fusión de clasificación recíproca).
Consulte la documentación para obtener información sobre cómo habilitar la compatibilidad con la búsqueda de texto completo en el modelo de EF y cómo usar la búsqueda híbrida en consultas.