共用方式為


Azure AI 搜尋服務 (支援的數據類型)

本文說明 Azure AI 搜尋服務所支援的數據類型。 篩選表示式中使用的欄位和值會根據 實體資料模型輸入, (EDM) 。 指定 EDM 資料類型是欄位定義的需求。

注意

如果您使用 索引器,請參閱 Azure AI 搜尋服務中索引器的數據類型對應 ,以取得索引器如何將來源特定數據類型對應至搜尋索引中 EDM 數據類型的詳細資訊。

向量欄位的 EDM 資料類型

向量欄位類型對於內嵌模型的輸出必須有效。 例如,如果您使用 text-embedding-ada-002,則輸出格式為 Float32Collection(Edm.Single)。 在此案例中,您無法指派 Int8 數據類型,因為禁止從 float 轉換成 int 基本類型。 不過,您可以從轉換成 Float32Float16(Collection(Edm.Half))

向量欄位是內嵌的陣列。 在EDM中,陣列是集合。

資料類型 向量類型 Description 建議使用
Collection(Edm.Byte) 二進位 1 位無符號二進位檔。 從 Create 或更新索引 (2024-05-01-preview) 開始提供。 支援與發出二進位內嵌的模型整合,例如 Cohere 的 v3 二進位內嵌模型。 或發出 1 位無符號二進位輸出的自定義量化邏輯。 Collection(Edm.Byte)如需指定二進位數據的欄位定義和二進位數據的向量搜尋演算法的說明,請參閱索引二進位數據
Collection(Edm.Single) Float32 32 位浮點數。 從 Create 或更新索引 (2023-07-01-Preview) 開始提供。 較新的預覽版本和穩定版本 2023-11-01也支援此數據類型。 Microsoft 工具中代表您建立向量欄位的預設資料類型。 在精確度與效率之間取得平衡。 大部分的內嵌模型都會以 發出 Float32向量。
Collection(Edm.Half) Float16 16 位浮點數較低,有效位數和範圍較低。 從 Create 或更新索引 (2024-03-01-preview) 開始提供。 適用於記憶體和計算效率很重要,以及犧牲某些有效位數可接受的情況。 相較於,通常會導致查詢時間更快,而且記憶體使用量 Float32降低,但精確度會稍微降低。 您可以將類型指定 Float16 給索引 Float32 內嵌為 Float16。 您也可以使用 Float16 來內嵌模型或原生發出的 Float16 自訂量化程式。
Collection(Edm.Int16) Int16 16 位帶正負號的整數。 從 Create 或更新索引 (2024-03-01-preview) 開始提供。 相較於 Float32 較高精確度的量化方法,提供降低的記憶體使用量,同時仍保留許多應用程式的足夠精確度。 適用於記憶體效率很重要的情況。 您必須具有將向量輸出為 Int16的自訂量化。
Collection(Edm.SByte) Int8 8 位帶正負號的整數。 從 Create 或更新索引 (2024-03-01-preview) 開始提供。 相較於 或 Float16,提供顯著的記憶體和計算效率提升Float32。 不過,可能需要補充技術 (例如量化和過度取樣) ,以適當地位移精確度和召回率降低。 您必須具有將向量輸出為 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.fffZyyyy-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 [起點]。

另請參閱