支援的資料類型 (Azure AI 搜尋)

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

注意

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

向量欄位的 EDM 資料類型

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

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

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

另請參閱