次の方法で共有


ドキュメントの追加、更新、または削除 (プレビュー REST API)

: 2023-07-01-Preview に適用されます。 このバージョンはサポートされなくなりました。 新しいバージョンにすぐに アップグレードします。

大事な

2023-07-01-Preview では次のものが追加されます。

  • ドキュメント内のベクター フィールドのサポート。

HTTP POST を使用して、ベクター フィールドを含むドキュメントを指定したインデックスにプッシュできます。 大規模な更新では、バッチ処理 (バッチあたり最大 1000 ドキュメント、またはバッチあたり約 16 MB) により、インデックス作成のパフォーマンスが向上します。

POST https://[service name].search.windows.net/indexes/[index name]/docs/index?api-version=2023-07-01-Preview  
  Content-Type: application/json   
  api-key: [admin key]  

URI パラメーター

パラメーター 形容
サービス名 必須。 この値を、検索サービスの一意のユーザー定義名に設定します。
インデックス名 必須。 この値を、ドキュメントを受信するインデックスの名前に設定します。 ドキュメントを投稿できるのは、一度に 1 つのインデックスのみです。
api-version その他のバージョンについては、API のバージョン を参照してください。

要求ヘッダー

次の表では、必須の要求ヘッダーと省略可能な要求ヘッダーについて説明します。

田畑 形容
Content-Type 必須。 この値を application/json に設定します
api-key Azure ロール 使用していて、要求にベアラー トークンが提供されている場合は省略可能。それ以外の場合はキーが必要です。 API キーは、検索サービスに対する要求を認証する一意のシステム生成文字列です。 ドキュメントをアップロードするには、管理者 API キーが必要です。 詳細については、「キー認証 を使用して Azure AI Search に接続する」を参照してください。

要求本文

要求の本文には、インデックスを作成する 1 つ以上のドキュメントが含まれています。 ドキュメントは、大文字と小文字を区別するキーを使用して一意に識別されます。 各ドキュメントは、"upload"、"delete"、"merge"、または "mergeOrUpload" アクションに関連付けられます。 アップロード要求には、キーと値のペアのセットとしてドキュメント データを含める必要があります。

ベクター フィールドの型は Collection(Edm.Single)です。 ベクター データは、単精度浮動小数点数の配列で構成されます。

ベクター フィールドには、元のコンテンツの複雑さ、長さ、または種類に応じて、何千もの埋め込みを含めることができます。 Azure AI Search では、コンテンツは埋め込みには変換されません。 インデックスにプッシュするドキュメントには、以前に生成した埋め込みを含める必要があります。

{  
  "value": [  
    {  
      "@search.action": "upload (default) | merge | mergeOrUpload | delete",  
      "key_field_name": "unique_key_of_document", (key/value pair for key field from index schema)  
      "field_name": field_value (key/value pairs matching index schema),
      "vector_field_name": [ array of single-precision floating point numbers ]
        ...  
    },  
    ...  
  ]  
}  
財産 形容
@search.action 必須。 有効な値は、"upload"、"delete"、"merge"、または "mergeOrUpload" です。 既定値は "upload" です。
key_field_name 必須。 ドキュメント キーとして機能し、一意の値のみを含むインデックス内のフィールド定義。 ドキュメント キーには、文字、数字、ダッシュ ("-")、アンダースコア ("_")、等号 ("=") のみを含めることができます。大文字と小文字は区別されます。
field_name 必須。 名前と値のペア。フィールドの名前は、インデックス定義内のフィールド名に対応します。 値はユーザー定義ですが、フィールド型に対して有効である必要があります。

応答

状態コード: 応答が成功すると 200 が返されます。つまり、すべての項目が永続的に格納され、インデックス作成が開始されています。 インデックス作成はバックグラウンドで実行され、インデックス作成操作が完了してから数秒後に新しいドキュメントを使用できるようになります (つまり、クエリ可能で検索可能)。

インデックス作成が成功すると、すべての項目に対して status プロパティが true に設定されたときに示されます。 statusCode プロパティは、201 (新しくアップロードされたドキュメントの場合) または 200 (マージまたは削除されたドキュメントの場合) のいずれかである必要があります。

例: テキストとベクター コンテンツを含む 2 つのドキュメントをアップロード

読みやすくするために、次の例はドキュメントと埋め込みのサブセットを示しています。 ドキュメントのアップロード要求の本文は 108 個のドキュメントで構成され、それぞれに "titleVector" と "contentVector" の埋め込みの完全なセットが含まれています。

POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/index?api-version={{api-version}}
Content-Type: application/json
api-key: {{admin-api-key}}
{
    "value": [
        {
            "id": "1",
            "title": "Azure App Service",
            "content": "Azure App Service is a fully managed platform for building, deploying, and scaling web apps. You can host web apps, mobile app backends, and RESTful APIs. It supports a variety of programming languages and frameworks, such as .NET, Java, Node.js, Python, and PHP. The service offers built-in auto-scaling and load balancing capabilities. It also provides integration with other Azure services, such as Azure DevOps, GitHub, and Bitbucket.",
            "category": "Web",
            "titleVector": [
                -0.02250031754374504,
                 . . . 
                        ],
            "contentVector": [
                -0.024740582332015038,
                 . . .
            ],
            "@search.action": "upload"
        },
        {
            "id": "2",
            "title": "Azure Functions",
            "content": "Azure Functions is a serverless compute service that enables you to run code on-demand without having to manage infrastructure. It allows you to build and deploy event-driven applications that automatically scale with your workload. Functions support various languages, including C#, F#, Node.js, Python, and Java. It offers a variety of triggers and bindings to integrate with other Azure services and external services. You only pay for the compute time you consume.",
            "category": "Compute",
            "titleVector": [
                -0.020159931853413582,
                . . .
            ],
            "contentVector": [
                -0.02780858241021633,,
                 . . .
            ],
            "@search.action": "upload"
        }
        . . .
    ]
}

手記

タイム ゾーン情報 DateTimeOffset 値をインデックスにアップロードすると、Azure AI Search によってこれらの値が UTC に正規化されます。 たとえば、2019-01-13T14:03:00-08:00 は 2019-01-13T22:03:00Z として格納されます。 タイム ゾーン情報を格納する必要がある場合は、インデックスに列を追加します。

関連項目