語言

SqlServerQueryableExtensions.VectorSearch<T,TVector> 方法

定義

使用 SQL Server VECTOR_SEARCH() 函式搜尋與特定查詢向量相似的向量。

[System.Diagnostics.CodeAnalysis.Experimental("EF9105")]
public static System.Linq.IQueryable<Microsoft.EntityFrameworkCore.VectorSearchResult<T>> VectorSearch<T,TVector>(this Microsoft.EntityFrameworkCore.DbSet<T> source, System.Linq.Expressions.Expression<Func<T,TVector>> vectorPropertySelector, TVector similarTo, string metric) where T : class where TVector : struct;
[<System.Diagnostics.CodeAnalysis.Experimental("EF9105")>]
static member VectorSearch : Microsoft.EntityFrameworkCore.DbSet<'T (requires 'T : null)> * System.Linq.Expressions.Expression<Func<'T, 'Vector>> * 'Vector * string -> System.Linq.IQueryable<Microsoft.EntityFrameworkCore.VectorSearchResult<'T>> (requires 'T : null and 'Vector : struct)
<Extension()>
Public Function VectorSearch(Of T As Class, TVector As Class) (source As DbSet(Of T), vectorPropertySelector As Expression(Of Func(Of T, TVector)), similarTo As TVector, metric As String) As IQueryable(Of VectorSearchResult(Of T))

類型參數

T
TVector

參數

source
DbSet<T>

代表 DbSet<TEntity> 包含要查詢的向量欄位的表格。

vectorPropertySelector
Expression<Func<T,TVector>>

實體向量屬性的選擇器。

similarTo
TVector

用於搜尋的向量,可以是參數或另一列向量。

metric
String

用來計算查詢向量與指定數據行中向量之間的距離度量。 只有在找到具有相同計量且位於相同數據行的相符 ANN 索引時,才會使用 ANN (近似近鄰)索引。 如果沒有相容的 ANN 索引,則會引發警告,並使用 KNN (k-Nearest Neighbor) 演算法。

傳回

屬性

備註

使用 WithApproximate<T>(IQueryable<T>) After Take(...) 來啟用近似最近鄰(ANN)搜尋,該搜尋利用向量索引以提升效能。 若沒有 WithApproximate,則會進行精確的 k 最近鄰(kNN)搜尋。 新增 OrderBy 一個明確控制結果排序。

適用於