インデクサーの作成または更新 (REST API のプレビュー)
適用対象: 2023-07-01-Preview、2021-04-30-Preview、2020-06-30-Preview
重要
2023-07-01-Preview (変更なし)。
2021-04-30-Preview により、エンリッチメント キャッシュと暗号化キーのマネージド ID サポートが追加されました。
- "storageConnectionString" は 、Azure Storage へのシステム割り当てマネージド ID 接続のリソース ID を受け入れます。 このプロパティは "cache" の下にあります。 ユーザー割り当てマネージド ID はサポートされていません。
- "identity" は 、ユーザー割り当てマネージド ID を受け入れます。
2020-06-30-Preview は次を追加します。
- スキルセットによって作成されたエンリッチされたコンテンツをキャッシュおよび再利用するために使用される "キャッシュ"。
インデクサーは、定義済みのデータ ソースに接続し、データを取得してシリアル化し、データ インジェストのために検索サービスに渡すことによって、サポートされているデータ ソースからのインデックス作成を自動化します。 画像と非構造化テキストの AI エンリッチメントの場合、インデクサーは、画像と自然言語処理を追加する スキルセット を受け入れることもできます。
作成要求では、POST または PUT を使用できます。 いずれの場合も、要求本文によってオブジェクト定義が提供されます。
POST https://[service name].search.windows.net/indexers?api-version=[api-version]
Content-Type: application/json
api-key: [admin key]
更新要求の場合は、PUT を使用し、URI にインデクサー名を指定します。
PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=[api-version]
Content-Type: application/json
api-key: [admin key]
HTTPS はすべてのサービス要求に必要です。 インデクサーが存在しない場合は、作成されます。 既に存在する場合は、新しい定義に更新されますが、インデクサーの実行が必要な場合 は、インデクサーの実行 要求を発行する必要があります。
インデクサーを作成 すると、検索サービスに追加されて実行されます。 要求が成功すると、インデックスにデータ ソースからの検索可能なコンテンツが設定されます。
インデクサーを更新 しても自動的には実行されませんが、変更と関連付けられたデータ ソースによっては、リセットと再実行が必要になる場合があります。 既存のインデクサーを更新すると、定義全体が要求本文の内容に置き換えられます。 一般に、更新に使用する最適なパターンは、GET を使用してインデクサー定義を取得し、変更してから PUT で更新することです。
インデクサーの構成は、データ ソースの種類によって異なります。 インデクサーの作成に関するデータ プラットフォーム固有のガイダンスについては、「インデクサーの概要」から始めてください。そこに、関連記事の完全な一覧が記載されています。
注意
作成できるインデクサーの最大数は、価格レベルによって異なります。 詳細については、「 Azure AI Search のサービス制限」を参照してください。
URI パラメーター
パラメーター | 説明 |
---|---|
サービス名 | 必須。 これを検索サービスの一意のユーザー定義名に設定します。 |
インデクサー名 | PUT を使用する場合は、URI で必須です。 名前は小文字で、文字または数字で始まり、スラッシュやドットを含まず、128 文字以下にする必要があります。 名前を文字または数字で開始した後、ダッシュが連続していない限り、名前の残りの部分には任意の文字、数字、ダッシュを含めることができます。 |
api-version | 必須。 現在のプレビュー バージョンは です 2023-07-01-Preview 。 その他 のバージョンについては、「API のバージョン 」を参照してください。 |
要求ヘッダー
次の表では、必須と省略可能の要求ヘッダーについて説明します。
フィールド | 説明 |
---|---|
Content-Type | 必須。 これを application/json |
api-key | Azure ロールを使用していて、要求にベアラー トークンが指定されている場合は省略可能。それ以外の場合はキーが必要です。 api-key は、検索サービスに対する要求を認証する一意のシステム生成文字列です。 要求の作成には、(クエリ キーではなく) 管理キーに設定されたヘッダーを含める api-key 必要があります。 詳細については、「 キー認証を使用して Azure AI Search に接続 する」を参照してください。 |
要求本文
データ ソース、インデックス、スキルセットはインデクサーの定義の一部ですが、それぞれが独立したコンポーネントであり、さまざまな組み合わせで使用できます。 たとえば、複数のインデクサーで同じデータ ソースを使用したり、複数のインデクサーで同じインデックスを使用したり、単一のインデックスに書き込む複数のインデクサーを使用したりできます。
次の JSON は、定義のメイン部分の大まかな表現です。
{
"name" : (optional on PUT; required on POST) "Name of the indexer",
"description" : (optional) "Anything you want, or nothing at all",
"dataSourceName" : (required) "Name of an existing data source",
"targetIndexName" : (required) "Name of an existing index",
"skillsetName" : (required for AI enrichment) "Name of an existing skillset",
"cache": { ... },
"schedule" : (optional but runs once immediately if unspecified) { ... },
"parameters" : (optional) {
"batchSize": null,
"maxFailedItems": 0,
"maxFailedItemsPerBatch": 0,
"base64EncodeKeys": null,
"configuration": { }
},
"fieldMappings" : (optional) { ... },
"outputFieldMappings" : (required for AI enrichment) { ... },
"encryptionKey":(optional) { },
"disabled" : (optional) Boolean value indicating whether the indexer is disabled. False by default.
}
要求には次のプロパティが含まれます。
プロパティ | 説明 |
---|---|
name | 必須。 名前は小文字で、文字または数字で始まり、スラッシュやドットを含まず、128 文字以下にする必要があります。 名前を文字または数字で開始した後、ダッシュが連続していない限り、名前の残りの部分には任意の文字、数字、ダッシュを含めることができます。 |
description | 省略可能。 インデクサーの説明。 |
dataSourceName | 必須。 接続情報とその他のプロパティを提供する既存のデータ ソースの名前。 |
targetIndexName | 必須。 既存のインデックスの名前。 |
skillsetName | AI エンリッチメントに必要です。 既存のスキルセットの名前。 |
cache | AI エンリッチメントの省略可能。変更されていないドキュメントを再利用できます。 |
schedule | 省略可能ですが、指定されていない場合は直ちに 1 回実行されます。 |
parameters | 省略可能。 ランタイムの動作を変更するためのプロパティ。 |
fieldMappings | 省略可能。 ソース フィールドと変換先フィールドの名前が異なる場合に使用されます。 |
outputFieldMappings | AI エンリッチメントに必要です。 スキルセットからの出力をインデックスまたはプロジェクションにマップします。 |
encryptionKey | 省略可能。 Azure Key Vaultで管理されている、独自のキーを使用して保存中のインデクサー データを暗号化するために使用されます。 詳細については、「Azure Key Vault でカスタマー マネージド キーを使用した Azure AI Search 暗号化」を参照してください。 |
disabled | 省略可能。 インデクサーが無効かどうかを示すブール値。 既定では false です。 |
Response
要求成功の場合: 201 作成されました。
例
例: スケジュールとパラメーターを持つテキスト ベースのインデクサー
次の使用例は、2022 年 1 月 1 日 (UTC) に開始され、1 時間ごとに実行されるスケジュールで、データ ソースorders-idx
によってorder-sds
参照されるテーブルからインデックスにデータをコピーするインデクサーを作成します。 インデックス作成に失敗した項目が各バッチで 5 つ以下で、合計で 10 以下あれば、各インデクサーの呼び出しは成功となります。 フィールドのマッピングは、フィールド名と型が一致しない場合にデータ パスを提供します。
{
"name" : "myindexer",
"description" : "a cool indexer",
"dataSourceName" : "orders-ds",
"targetIndexName" : "orders-idx",
"fieldMappings" : [
{
"sourceFieldName" : "content",
"targetFieldName" : "sourceContent"
}
],
"schedule" : { "interval" : "PT1H", "startTime" : "2022-01-01T00:00:00Z" },
"parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 5 }
}
例: スキルセット インデクサー
この例では、スキルの出力を検索インデックスのフィールドにマップするスキルセットと outputFieldMappings への参照によって示される AI エンリッチメントを示します。 スキルセットは高水準リソースであり、個別に定義されます。
このプレビューの新機能であり、スキルセットにのみ適用できる キャッシュ プロパティ を指定して、スキルセット定義の変更の影響を受けないドキュメントを再利用できます。
{
"name":"demo-indexer",
"dataSourceName" : "demo-data",
"targetIndexName" : "demo-index",
"skillsetName" : "demo-skillset",
"cache" :
{
"storageConnectionString" : "DefaultEndpointsProtocol=https;AccountName=<storage-account-name>;AccountKey=<storage-account-key>;EndpointSuffix=core.windows.net",
"enableReprocessing": true
},
"fieldMappings" : [ ],
"outputFieldMappings" :
[
{
"sourceFieldName" : "/document/organizations",
"targetFieldName" : "organizations"
},
],
"parameters":
{
"maxFailedItems":-1,
"configuration":
{
"dataToExtract": "contentAndMetadata",
"imageAction": "generateNormalizedImages"
}
}
}
例: マネージド ID 接続を使用したエンリッチメント キャッシュ
この例では、認証に Azure Active Directory を使用する場合の接続文字列形式を示します。 検索サービスは、 マネージド ID を使用するように構成する必要があります。 キャッシュに書き込むことができるように、ID には "ストレージ BLOB データ共同作成者" アクセス許可が必要です。 接続文字列はストレージ アカウントの一意のリソース ID であり、キャッシュされたエンリッチメントの格納に使用されるコンテナーを含める必要があります。
{
"name":"demo-indexer",
"dataSourceName" : "demodata-ds",
"targetIndexName" : "demo-index",
"skillsetName" : "demo-skillset",
"cache" :
{
"storageConnectionString" : "ResourceId=/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/<container-name>;",
"enableReprocessing": true
},
"fieldMappings" : [ ],
"outputFieldMappings" : [ ],
"parameters": { }
}
定義
Link | 説明 |
---|---|
cache | AI エンリッチメントとスキルセット実行のキャッシュを構成します。 |
encryptionKey | カスタマー マネージド暗号化用に Azure Key Vaultへの接続を構成します。 |
fieldMappings | 名前と型によって一致しないフィールドのソースから宛先へのフィールド マッピング。 |
outputFieldMappings | エンリッチされたドキュメント内のノードをインデックス内のフィールドにマップします。 スキルセットを使用している場合は必須です。 |
parameters | インデクサーを構成します。 パラメーターには、一般的なパラメーターとソース固有のパラメーターが含まれます。 |
schedule | スケジュールされたインデクサー実行の間隔と頻度を指定します。 |
キャッシュ (プレビュー)
インクリメンタル インデックス 作成は、スキルセットを処理するときに、キャッシュ内のエンリッチされたドキュメントを再利用する機能です。 最も一般的なシナリオは、OCR の再利用や画像ファイルの画像分析です。これは、処理にコストがかかり、時間がかかる場合があります。
"cache" :
{
"storageConnectionString" : "<YOUR-STORAGE-ACCOUNT-CONNECTION-STRING>",
"enableReprocessing": true
}
キャッシュ オブジェクトには、必須プロパティと省略可能なプロパティがあります。
プロパティ | 説明 |
---|---|
storageConnectionString | 必須。 中間結果をキャッシュするために使用するストレージ アカウントを指定します。 指定したアカウントを使用すると、検索サービスによって、インデクサーに固有の GUID でプレフィックスが付き、完了した ms-az-search-indexercache BLOB コンテナーが作成されます。 キーを含むフル アクセス 接続文字列、または Azure AD を使用して認証された要求のストレージ アカウントの一意のリソース ID に設定する必要があります。 Azure AD を介して認証するには、 マネージド ID を使用するように検索サービスを構成する必要があり、その ID には "ストレージ BLOB データ共同作成者" アクセス許可が必要です。 |
enableReprocessing | 省略可能。 キャッシュに既に表されている受信ドキュメントに対する処理を制御するブール型プロパティ (true 既定)。 (既定値) の場合 true 、スキルの更新がそのドキュメントに影響を与えると仮定して、インデクサーを再実行すると、キャッシュに既に存在するドキュメントが再処理されます。の場合 false 、既存のドキュメントは再処理されず、既存のコンテンツよりも新しい受信コンテンツの優先順位が効果的に優先されます。 enableReprocessing を false に設定するのは一時的な措置にしてください。 コーパス全体の整合性を確保するには、ほとんどの場合 enableReprocessing を true にして、現在のスキルセット定義に従って新規および既存のすべてのドキュメントを有効な状態にする必要があります。 |
id | 読み取り専用です。 キャッシュが作成されると生成されます。 ID は、このインデクサーのキャッシュとして使用されるストレージ アカウント内のコンテナーの識別子です。 このインデクサーに固有のキャッシュであり、インデクサーが削除されて同じ名前で再作成されると、ID が再び生成されます。 を ID 設定することはできません。これは常にサービスによって生成されます。 |
schedule
インデクサーには、必要に応じてスケジュールを指定できます。 スケジュールを指定しない場合、要求を送信するとすぐにインデクサーが実行され、データ ソースに接続してクロールやインデックスの作成を行います。 実行時間の長いインデックス作成ジョブを含む一部のシナリオでは、24 時間の最大値を超えて処理ウィンドウを拡張するために、スケジュールが使用されます。 スケジュールが存在する場合、インデクサーはスケジュールに従って定期的に実行されます。 スケジューラは組み込まれています。外部スケジューラを使用することはできません。 Schedule には次の属性があります。
interval: 必須。 インデクサーが実行される間隔または期間を指定する時間の値。 許可される最短の間隔は 5 分です。最長は 1 日です。 XSD "dayTimeDuration" 値 (ISO 8601 期間値の制限されたサブセット) として書式設定する必要があります。 このパターンは、例:
"P[nD][T[nH][nM]]".
PT15M
15 分ごと、PT2H
2 時間ごとです。startTime - 省略可能。 インデクサーの実行を開始する UTC 日時。
注意
インデクサーが特定のスケジュールに設定されているが実行のたびに同じドキュメントに対して繰り返し失敗する場合、進捗が再び正常化するまでの間、インデクサーは (最大で 24 時間に 1 回に) 間隔を開けて実行頻度を下げます。 インデクサーが特定の箇所で停止する原因になっていた問題をすべて修正したと思われる場合、インデクサーをオンデマンドで実行できます。それによって進捗が正常になったら、インデクサーは設定されていたスケジュール間隔に復帰します。
parameters
必要に応じて、インデクサーに、実行時の動作を変更する構成パラメーターを指定できます。 構成パラメーターは、インデクサーの要求のコンマ区切りです。
{
"name" : "my-blob-indexer-for-cognitive-search",
... other indexer properties
"parameters" : {
"batchSize": null,
"maxFailedItems": 0,
"maxFailedItemsPerBatch": 0,
"base64EncodeKeys": null,
"configuration" : {
"parsingMode" : "json",
"indexedFileNameExtensions" : ".json, .jpg, .png",
"imageAction" : "generateNormalizedImages",
"dataToExtract" : "contentAndMetadata" } }
}
すべてのインデクサーの一般的なパラメーター
パラメーター | 型と使用できる値 | 使用 |
---|---|---|
"batchSize" |
Integer 規定値はソースによって異なる (Azure SQL Database や Azure Cosmos DB の場合は 1,000、Azure Blob Storage の場合は 10) |
パフォーマンスを改善する目的で、データ ソースから読み込まれ、1 つのバッチとしてインデックスが作成されるアイテムの数を指定します。 |
"maxFailedItems" |
Integer 既定値は 0 です |
エラーの数がこの数字を超えると、インデクサーの実行が失敗したとみなされます。 いかなるエラーによってもインデックス作成のプロセスを停止させない場合は、-1 に設定します。 失敗したアイテムについての情報は、インデクサー状態の取得を使用して取得できます。 |
"maxFailedItemsPerBatch" |
Integer 既定値は 0 です |
各バッチのエラーの数がこの数字を超えると、インデクサーの実行が失敗したとみなされます。 いかなるエラーによってもインデックス作成のプロセスを停止させない場合は、-1 に設定します。 |
"base64EncodeKeys" |
Boolean 既定値は true です。 |
有効な値は null、true、または false です。 false に設定すると、インデクサーはドキュメント キーとして指定されたフィールドの値を base64 で自動的にエンコードしません。 このプロパティを設定すると、base64 がドキュメント キーで有効でないキー値 (ダッシュなど) をエンコードするマッピング関数を指定する必要がなくなります。 |
BLOB の構成パラメーター
Azure Blob のインデックス付けなど、一部のパラメーターは特定のインデクサーにしかありません。
パラメーター | 型と使用できる値 | 使用方法 |
---|---|---|
"parsingMode" |
String"text" "delimitedText" "json" "jsonArray" "jsonLines" |
Azure BLOB の場合、text に設定すると BLOB ストレージ内のプレーン テキスト ファイルのインデックス作成のパフォーマンスが向上します。 CSV BLOB の場合、BLOB が単純な CSV ファイルのときは delimitedText に設定します。 JSON BLOB の場合は、 を に json 設定して構造化コンテンツを抽出するか、 をにjsonArray 設定して、Azure AI Search で個別のドキュメントとして配列の個々の要素を抽出します。 を使用して jsonLines 、Azure AI Search で個別のドキュメントとして、新しい行で区切られた個々の JSON エンティティを抽出します。 |
"excludedFileNameExtensions" |
String コンマ区切りのリスト ユーザー定義 |
Azure BLOB の場合、リスト内のファイルの種類をすべて無視します。 たとえば、".png, .png, .mp4" を除外することで、インデックス作成中にこれらのファイルをスキップできます。 |
"indexedFileNameExtensions" |
String コンマ区切りのリスト ユーザー定義 |
Azure BLOB の場合、ファイルの拡張子がリストに含まれる場合は BLOB を選択します。 たとえば、インデックス作成を特定のアプリケーション ファイル ".docx, .pptx, .msg" に集中させ、これらのファイルの種類を具体的に含めることができます。 |
"failOnUnsupportedContentType" |
Boolean true false (既定値) |
Azure BLOB の場合、サポートされていないコンテンツの種類が出現し、すべてのコンテンツの種類 (ファイル拡張子) が事前にわからないときに、インデックス作成を続行する場合は false に設定します。 |
"failOnUnprocessableDocument" |
Boolean true false (既定値) |
Azure BLOB の場合、ドキュメントのインデックス作成が失敗した場合にインデックス作成を続行する場合は、false に設定します。 |
"indexStorageMetadataOnly ForOversizedDocuments" |
ブール値 true false (既定値) |
Azure BLOB の場合、大きすぎて処理できない BLOB コンテンツのストレージ メタデータに対してインデックス作成を続行するには、このプロパティを true に設定します。 サイズが大きい BLOB は、既定ではエラーとして扱われます。 BLOB サイズの制限については、「サービスの 制限」を参照してください。 |
"delimitedTextHeaders" |
String コンマ区切りのリスト ユーザー定義 |
CSV BLOB の場合は、列ヘッダーのコンマ区切りのリストを指定します。これは、ソース フィールドをインデックス内の宛先フィールドにマッピングするのに役立ちます。 |
"delimitedTextDelimiter" |
String 1 文字 ユーザー定義 |
CSV BLOB の場合は、各行が新しいドキュメントを開始する CSV ファイルの行末区切り記号を指定します (例: "|" )。 |
"firstLineContainsHeaders" |
Boolean true (既定値) false |
CSV BLOB の場合、 は、各 BLOB の最初の (空白以外の) 行にヘッダーが含まれていることを示します。 |
"documentRoot" |
String ユーザー定義パス |
JSON 配列の場合、構造化ドキュメントまたは半構造化ドキュメントを指定すると、このプロパティを使用して配列へのパスを指定できます。 |
"dataToExtract" |
String"storageMetadata" "allMetadata" "contentAndMetadata" (既定値) |
Azure BLOB の場合:"storageMetadata" に設定することで、標準的な BLOB のプロパティおよびユーザー指定のメタデータにのみインデックスを作成します。 "allMetadata" に設定することで、Azure Blob Storage サブシステムによって提供されるメタデータを抽出し、content-type 固有のメタデータ (たとえば、.png ファイルにのみ固有のメタデータ) にインデックスを作成します。 "contentAndMetadata" に設定することで、各 BLOB からすべてのメタデータとテキスト コンテンツを抽出します。 AI エンリッチメントでの画像分析の場合、 が 以外 "none" "dataToExtract" の値に設定されている場合"imageAction" 、この設定は、画像コンテンツから抽出するデータをインデクサーに指示します。 これは、Azure BLOB 内の、.PDF またはその他のアプリケーションの埋め込み画像コンテンツや、.jpg や .png などの画像ファイルに適用されます。 |
"imageAction" |
String"none" "generateNormalizedImages" "generateNormalizedImagePerPage" |
Azure BLOB の場合、"none" に設定することで、埋め込み画像またはデータ セット内の画像ファイルを無視します。 既定値です。 AI エンリッチメントでの画像分析の場合は、 を に "generateNormalizedImages" 設定して画像からテキストを抽出し (たとえば、トラフィックの停止記号から "stop" という単語)、コンテンツ フィールドの一部として埋め込みます。 画像分析中、インデクサーは、ドキュメント解読の一部として正規化された画像の配列を作成し、生成された情報をコンテンツ フィールドに埋め込みます。 このアクションを実行するには、"dataToExtract" を "contentAndMetadata" に設定する必要があります。 正規化された画像は、一様な画像出力をもたらす追加処理を参照します。画像出力は、ビジュアル検索の結果に画像を含めるときに一貫性のあるレンダリングを促進するために、サイズと回転を調整されます (たとえば、JFK のデモで見られるような、グラフ コントロール内の同一サイズの写真)。 このオプションを使用すると、各画像に対してこの情報が生成されます。 "generateNormalizedImagePerPage" に設定した場合は、PDF ファイルの処理が異なり、埋め込み画像が抽出されるのではなく、各ページが画像としてレンダリングされ、それに応じて正規化されます。 PDF 以外のファイルの種類は、"generateNormalizedImages" が設定されている場合と同じように処理されます。 構成を 以外 "none" の"imageAction" 値に設定するには、スキルセットもそのインデクサーにアタッチする必要があります。 |
"normalizedImageMaxWidth" "normalizedImageMaxHeight" |
50 - 10000 の範囲の整数 | が設定されたときに "imageAction" 生成される正規化されたイメージの最大幅または高さ (ピクセル単位)。 既定値は 2000 です。 正規化された画像の最大幅と最大高さの既定値 (2000 ピクセル) は、 OCR スキルと画像分析スキルでサポートされる最大サイズに基づいています。 OCR のスキルでは、英語以外の言語の場合は最大の幅と高さ 4200、英語の場合は 10000 がサポートされます。 上限を引き上げると、スキルセットの定義とドキュメントの言語によっては、大きな画像で処理が失敗する可能性があります。 |
"allowSkillsetToReadFileData" |
Boolean true false (既定値) |
パラメーターを "allowSkillsetToReadFileData" に true 設定すると、BLOB データ ソースからダウンロードされた元のファイル データを表す オブジェクトであるパス /document/file_data が作成されます。 これにより、エンリッチメント パイプライン内で処理するための カスタム スキル または ドキュメント抽出スキルに、元のファイル データを渡すことができます。 生成されるオブジェクトは次のように定義されます。 { "$type": "file", "data": "BASE64 encoded string of the file" } パラメーターを "allowSkillsetToReadFileData" にtrue 設定するには、スキルセットをそのインデクサーにアタッチし、パラメーターを "parsingMode" に"text" 設定"default" し、 パラメーターを "dataToExtract" または "json" "allMetadata" に設定する"contentAndMetadata" 必要があります。 |
"pdfTextRotationAlgorithm" |
String"none" (既定値)"detectAngles" |
パラメーターを "pdfTextRotationAlgorithm" に "detectAngles" 設定すると、その中でテキストが回転した PDF ファイルから、より適切で読みやすいテキスト抽出が生成される場合があります。 このパラメーターを使用すると、パフォーマンス速度への影響が小さくなる可能性があることに注意してください。 このパラメーターは PDF ファイルにのみ適用され、テキストが埋め込まれた PDF にのみ適用されます。 回転したテキストが PDF の埋め込み画像内に表示される場合、このパラメーターは適用されません。パラメーターを "pdfTextRotationAlgorithm" に設定するには "detectAngles" 、 パラメーターが "parsingMode" に "default" 設定されている必要があります。 |
Azure Cosmos DB 構成パラメーター
次のパラメーターは、Cosmos DB インデクサーに固有のものです。
パラメーター | 型と使用できる値 | 使用 |
---|---|---|
"assumeOrderByHighWaterMarkColumn" |
Boolean | SQL API を使用する Cosmos DB インデクサーの場合は、インデックス作成のためにドキュメントを返すために使用されるクエリが実際には 列によって順序付けされるというヒントを Cosmos DB に提供するには、このパラメーターを_ts 設定します。 このパラメーターを設定すると、 増分インデックス作成シナリオの結果が向上します。 |
Azure SQL構成パラメーター
次のパラメーターは、Azure SQL Database に固有です。
パラメーター | 型と使用できる値 | 使用方法 |
---|---|---|
"queryTimeout" |
String "hh:mm:ss" "00:05:00" |
このパラメーターを設定して、5 分の既定値をオーバーライドします。 |
"convertHighWaterMarkToRowVersion" |
Boolean | 高いウォーター マーク列に rowversion データ型を使用するには、このパラメーターを "true" に設定します。 このプロパティが true に設定されている場合、インデクサーは、インデクサーを実行する前に rowversion 値から 1 つを減算します。 これは、1 対多結合を持つビューに重複する rowversion 値を持つ行がある可能性があるためです。 1 を減算すると、インデクサー クエリはこれらの行を見逃すことがなくなります。 |
"disableOrderByHighWaterMarkColumn" |
Boolean | 変更検出に使用されるクエリで ORDER BY 動作を無効にする 場合は、このパラメーターを "true" に設定します。 高ウォーター マーク変更検出ポリシーを使用している場合、インデクサーは WHERE 句と ORDER BY 句を使用して、インデックス作成が必要な行を追跡します (WHERE [High Water Mark Column] > [Current High Water Mark Value] ORDER BY [High Water Mark Column] )。 このパラメーターは ORDER BY 動作を無効にします。 インデックス作成は速く完了しますが、何らかの理由でインデクサーが中断された場合は、インデクサー ジョブ全体を完全に繰り返す必要があります。 |
fieldMappings
ソース変換先のフィールド名または型が一致しない場合、または関数を指定する場合は、これらを作成します。 フィールド マッピングでは、大文字と小文字は区別されません。 「フィールド マッピングの定義」を参照してください。
属性 | 説明 |
---|---|
sourceFieldName | 必須。 ソース列の名前。 |
targetFieldName | 必須。 検索インデックス内の対応するフィールドの名前。 |
mappingFunction | 省略可能。 検索エンジンにルートを指定してソース値に処理を追加します。 たとえば、任意の文字列値を base64 でエンコードできるため、その値を、ドキュメントのキー フィールドに格納するために使用できます。 マッピング関数には、名前とパラメーターがあります。 有効な値は次のとおりです。 base64Encode base64Decode extractTokenAtPosition jsonArrayToStringCollection urlEncode urlDecode |
outputFieldMappings
検索インデックスのフィールドに対するスキル出力 (またはエンリッチメント ツリー内のノード) を指定します。
"outputFieldMappings" : [
{
"sourceFieldName" : "/document/organizations",
"targetFieldName" : "organizations"
},
{
"sourceFieldName" : "/document/pages/*/keyPhrases/*",
"targetFieldName" : "keyphrases"
},
{
"sourceFieldName": "/document/languageCode",
"targetFieldName": "language",
"mappingFunction": null
}
],
encryptionKey
追加のカスタマー マネージド暗号化キー (CMK) 用に Azure Key Vaultへの接続を構成します。 カスタマー マネージド キーを使用した暗号化は、無料サービスでは使用できません。 課金対象サービスの場合、2019-01-01 以降に作成された検索サービスでのみ使用できます。
キー コンテナーへの接続を認証する必要があります。 この目的には、"accessCredentials" またはマネージド ID を使用できます。
マネージド ID は、システムまたはユーザー割り当て (プレビュー) にすることができます。 検索サービスにシステム割り当てマネージド ID と、キー コンテナーへの読み取りアクセスを許可するロールの割り当ての両方がある場合は、"identity" と "accessCredentials" の両方を省略でき、要求はシステム マネージド ID を使用して認証されます。 検索サービスにユーザー割り当て ID とロールの割り当てがある場合は、"identity" プロパティをその ID のリソース ID に設定します。
属性 | 説明 |
---|---|
keyVaultKeyName | 必須。 暗号化に使用される Azure Key Vault キーの名前。 |
keyVaultKeyVersion | 必須。 Azure Key Vault キーのバージョン。 |
keyVaultUri | 必須。 キーを提供する Azure Key Vault (DNS 名とも呼ばれます) の URI。 URI の例を次に示します。 https://my-keyvault-name.vault.azure.net |
accessCredentials | マネージド ID を使用している場合は 省略します。 それ以外の場合、 のaccessCredentials プロパティには 、(指定した Azure Key Vaultへのアクセス許可を持つ Azure Active Directory アプリケーション ID)、および applicationSecret (指定した Azure AD アプリケーションの認証キー) が含まれますapplicationId 。 |
identity | Azure Key Vault への検索サービス接続にユーザー割り当てマネージド ID を使用している場合を除き、省略可能です。 形式は "/subscriptions/[subscription ID]/resourceGroups/[resource group name]/providers/Microsoft.ManagedIdentity/userAssignedIdentities/[managed identity name]" です。 |