本文說明 Azure AI 搜尋所支援的數據類型。 篩選運算式中使用的欄位和值是根據 實體資料模型 (EDM) 輸入的。 指定 EDM 資料類型是欄位定義的需求。
注意
如果您使用 索引子,請參閱 Azure AI 搜尋服務中索引子的資料類型對應 ,以取得索引子如何將來源特定資料類型對應至搜尋索引中的 EDM 資料類型的詳細資訊。
向量欄位的 EDM 資料類型
向量欄位類型必須對內嵌模型的輸出有效。 例如,如果您使用 text-embedding-ada-002,則輸出格式為 Float32 或 Collection(Edm.Single)。 在此案例中,您無法指派Int8資料類型,因為禁止轉換自floatint至基本類型。 但是,您可以從 或 Float16(Collection(Edm.Half))投射到 Float32 。
向量欄位是內嵌的陣列。 在EDM中,陣列是集合。
| 數據類型 | 向量類型 | 描述 | 建議使用 |
|---|---|---|---|
Collection(Edm.Byte) |
二元的 | 1 位無符號二進位檔。 在 建立或更新索引中正式推出。 | 支援與發出二進位內嵌的模型整合,例如 Cohere 的 v3 二進位內嵌模型。 或發出 1 位元無符號二進位輸出的自訂量化邏輯。 對於類型 Collection(Edm.Byte)的欄位,請參閱 索引二進位資料, 以取得指定二進位資料的欄位定義和向量搜尋演算法的說明。 |
Collection(Edm.Single) |
Float32 |
32 位浮點數。 在 建立或更新索引中正式推出。 | Microsoft工具中的預設數據類型,代表您建立向量字段。 在精確度和效率之間取得平衡。 大多數嵌入模型發出向量為 Float32。 |
Collection(Edm.Half) |
Float16 |
16 位浮點,有效位數和範圍較低。 在 建立或更新索引中正式推出。 | 適用於記憶體和計算效率十分重要,以及犧牲一些有效位數的案例。 通常 Float32會導致更快的查詢時間並減少記憶體佔用,儘管準確性略有降低。 您可以將類型指派 Float16 給索引 Float32 內嵌 Float16的類型,作為 。 您也可以用於 Float16 內嵌模型或原生發出 Float16 的自訂量化程序。 |
Collection(Edm.Int16) |
Int16 |
16 位帶正負號的整數。 在 建立或更新索引中正式推出。 | 與 Float32 更高精度的量化方法相比,提供更少的記憶體佔用,並支援更高精度的量化方法,同時仍為許多應用保留足夠的精度。 適用於記憶體效率很重要的情況。 要求您具有將向量輸出為 Int16的自訂量化。 |
Collection(Edm.SByte) |
Int8 |
8 位帶正負號的整數。 在 建立或更新索引中正式推出。 | 與 Float32 或 Float16相比,提供顯著的記憶體和運算效率提升。 不過,它可能需要補充技術(如量化和過度取樣),以適當地抵消精確度和召回率的降低。 要求您具有將向量輸出為 Int8的自訂量化。 |
非函式欄位的 EDM 資料類型
| 數據類型 | 描述 |
|---|---|
Edm.String |
文字數據。 |
Edm.Boolean |
包含 true/false 值。 |
Edm.Int32 |
32 位整數值。 |
Edm.Int64 |
64 位整數值。 |
Edm.Double |
雙精確度 IEEE 754 浮點數。 |
Edm.DateTimeOffset |
以 OData V4 格式表示的日期和時間值: yyyy-MM-ddTHH:mm:ss.fffZ 或 yyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mm。 欄位的 DateTimeOffset 精確度限制為毫秒。 如果您上傳 DateTimeOffset 具有亞毫秒精確度的值,則傳回的值會四捨五入為毫秒 (例如, 2024-04-15T10:30:09.7552052Z 傳回為 2024-04-15T10:30:09.7550000Z)。 當您將具有時區資訊的 DateTimeOffset 值上傳至索引時,Azure AI 搜尋服務會將這些值標準化為 UTC。 例如, 2024-01-13T14:03:00-08:00 儲存為 2024-01-13T22:03:00Z。 如果您需要儲存時區資訊,請將額外的欄位新增至您的索引。 |
Edm.GeographyPoint |
代表全球地理位置的點。 針對要求和響應主體,此類型的值表示會遵循 GeoJSON “Point” 類型格式。 針對 URL,OData 會根據 WKT 標準使用常值表單。 點常值會建構為 geography'POINT(lon lat)'。 |
Edm.ComplexType |
屬性對應至可以是任何其他支持數據類型之子欄位的物件。 此類型會啟用結構化階層式數據的索引,例如 JSON。 類型 Edm.ComplexType 欄位中的物件可以包含巢狀物件,但巢狀層級有限。 這些限制在 服務限制中說明。 |
Collection(Edm.String) |
字串清單。 |
Collection(Edm.Boolean) |
布爾值的清單。 |
Collection(Edm.Int32) |
32 位整數值的清單。 |
Collection(Edm.Int64) |
64 位整數值的清單。 |
Collection(Edm.Double) |
雙精確度數值的清單。 |
Collection(Edm.DateTimeOffset) |
日期時間值的清單。 |
Collection(Edm.GeographyPoint) |
代表地理位置的點清單。 |
Collection(Edm.ComplexType) |
類型為 Edm.ComplexType的物件清單。 文件中所有類型 Edm.ComplexType 集合的元素數目上限都有限制。 如需詳細資訊,請參閱 服務限制 。 |
上述所有類型都是可為 Null 的,但基本類型和複雜類型的集合除外,例如 Collection(Edm.String)。 可為 Null 的欄位可以明確設定為 null。 當從上傳至 Azure AI 搜尋服務索引的檔省略時,它們會自動設定為 null。 集合欄位在文件中省略時,會自動設定為空白 ([] 在 JSON 中)。 此外,您無法將 Null 值儲存在集合欄位中。
與複雜集合不同,基本類型集合中的項目數沒有特別上限,但 承載大小的 16 MB 上限 適用於文件的所有部分,包括集合。
篩選表達式中使用的地理空間數據類型
在 Azure AI 搜尋中,地理空間搜尋會以篩選形式表示。
Edm.GeographyPolygon 是代表地球上地理區域的多邊形。 雖然此類型無法在文件欄位中使用,但可以作為函數的 geo.intersects 引數使用。 OData中URL的文字形式是以 WKT(已知文字)和OGC的簡單功能存取標準為基礎。 多邊形常值會建構為 geography'POLYGON(lon lat, lon lat, ...)'。
重要
多邊形中的點 必須 按逆時針順序排列。 多邊形中的點會以逆時針順序解譯,相對於多邊形內部。 例如,倫敦周圍的 4 點封閉多邊形會是 -0.3°W 51.6°N [左上方] ,-0.3°W 51.4°N [左下], 0.1°E 51.4°N [右下角], 0.1°E 51.6°N [右上方], -0.3°W 51.6°N [起點]。