サポートされているデータ型 (Azure AI Search)

この記事では、Azure AI Search でサポートされるデータ型について説明します。 フィルター式で使用されるフィールドと値は、Entity Data Model (EDM)に従って入力されます。 EDM データ型の指定は、フィールド定義の要件です。

手記

インデクサーを使用している場合は、「Azure AI Search のインデクサーのデータ型マップ」 を参照してください。インデクサーがソース固有のデータ型を検索インデックス内の EDM データ型にマップする方法について詳しくは、「」をご覧ください。

ベクター フィールドの EDM データ型

ベクター フィールド 型は、埋め込みモデルの出力に対して有効である必要があります。 たとえば、text-embedding-ada-002 を使用する場合、出力形式は Float32 または Collection(Edm.Single)です。 このシナリオでは、float から int プリミティブへのキャストが禁止されているため、Int8 データ型を割り当てることはできません。 ただし、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 型を割り当てて、Float16として埋め込み Float32 インデックスを作成できます。 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.fffZ または yyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mmDateTimeOffset フィールドの有効桁数はミリ秒に制限されます。 サブミリ秒の有効桁数 DateTimeOffset 値をアップロードした場合、返される値はミリ秒に切り上げられます (たとえば、2024-04-15T10:30:09.7552052Z2024-04-15T10:30:09.7550000Zとして返されます)。 タイム ゾーン情報 DateTimeOffset 値をインデックスにアップロードすると、Azure AI Search によってこれらの値が UTC に正規化されます。 たとえば、2024-01-13T14:03:00-08:002024-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 Search インデックスにアップロードされたドキュメントから省略すると、自動的に null に設定されます。 コレクション フィールドは、ドキュメントから省略されると、自動的に空 (JSON で[]) に設定されます。 また、コレクション フィールドに null 値を格納することはできません。

複雑なコレクションとは異なり、プリミティブ型のコレクション内の項目の数に特に上限はありませんが、ペイロード サイズの 16 MB の上限 は、コレクションを含むドキュメントのすべての部分に適用されます。

フィルター式で使用される地理空間データ型

Azure AI Search では、地理空間検索はフィルターとして表されます。

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 [開始点]。

関連項目