SqlServerQueryableExtensions.VectorSearch<T,TVector> 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用 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 一個明確控制結果排序。