Important
Microsoft 365 インデクサーでの SharePoint のサポートは、パブリック プレビュー段階です。 追加使用条件に基づいて "現状のまま" 提供され、ベスト エフォートでのみサポートされます。 プレビュー機能は、運用ワークロードには推奨されず、一般提供されることを保証するものではありません。
開始 する前に、既知の制限事項に関する セクションを参照してください。
このフォームに入力 して、プレビューに登録します。 すべての要求が自動的に承認されます。 フォームに入力したら、 プレビュー REST API を使用してコンテンツのインデックスを作成します。
この記事では、Azure AI Search でのフルテキスト検索のために、検索インデクサーを構成して、SharePoint ドキュメント ライブラリに格納されているドキュメントのインデックスを作成する方法について説明します。 最初に構成手順を示し、次に動作とシナリオを示します。
Azure AI Search では、インデクサーがデータ ソースから検索可能なデータとメタデータを抽出します。 Microsoft 365 インデクサーの SharePoint には、次の機能があります。
- 1 つ以上のドキュメント ライブラリからファイルとメタデータのインデックスを作成します。
- インデックスを段階的に作成し、新しいファイルと変更されたファイルとメタデータのみを取得します。
- 削除されたコンテンツを自動的に検出します。 ライブラリ内のドキュメントの削除は、次のインデクサー実行で取得され、対応する検索ドキュメントがインデックスから削除されます。
- インデックス付きドキュメントからテキストと正規化された画像を自動的に抽出します。 必要に応じて、光学式文字認識 (OCR) やエンティティ認識など、より深い AI エンリッチメントのためのスキルセットを追加できます。
- 最初のドキュメント同期中にパブリック プレビューでドキュメント の基本的なアクセス制御リスト (ACL) インジェスト をサポートします。また、完全なデータ セットの増分データ同期もサポートしています。
- クエリ時の Microsoft Purview 秘密度ラベルの取り込みと反映をサポートします。 この機能はパブリック プレビュー段階です。
[前提条件]
Azure AI 検索、Basic 価格レベル以上。
Microsoft 365 クラウド サービスの SharePoint (OneDrive はサポートされているデータ ソースではありません)。
ドキュメント ライブラリ内のファイル。
インデクサー パイプラインを設定して実行するための、REST Client 拡張機能付き Visual Studio Code。
サポートされるドキュメントの形式
Microsoft 365 インデクサーの SharePoint は、次のドキュメント形式からテキストを抽出できます。
- CSV (CSV BLOB のインデックス作成に関する記事を参照)
- EML
- EPUB
- GZ
- HTML
- JSON (JSON BLOB のインデックス作成に関する記事を参照)
- KML (地理的表現の XML)
- Markdown
- Microsoft Office 形式: DOCX/DOC/DOCM、XLSX/XLS/XLSM、PPTX/PPT/PPTM、MSG (Outlook 電子メール)、XML (2003 と 2006 両方の WORD XML)
- オープン ドキュメント形式: ODT、ODS、ODP
- プレーンテキスト ファイル (「プレーン テキストのインデックス作成」も参照)
- RTF
- XML
- ZIP
制限事項と考慮事項
この機能の制限は次のとおりです。
インデクサーは、ドキュメント ライブラリでサポートされているドキュメント形式のコンテンツにインデックスを作成できます。 SharePoint リスト、ASPX サイト コンテンツ、および OneNote ノートブック ファイルに対するインデクサーのサポートはありません。 さらに、特定のサイトからのサブサイトの再帰的なインデックス作成はサポートされていません。
増分インデックス作成での制限:
SharePoint フォルダーの名前を変更すると、増分インデックス作成が中断されます。 名前が変更されたフォルダーは、新しいコンテンツとして扱われます。
SharePoint ファイル システムメタデータを更新する Microsoft 365 プロセスは、コンテンツに他の変更がない場合でも、増分インデックス作成をトリガーできます。 インデクサーまたは AI エンリッチメントを使用する前に、セットアップをテストし、Microsoft 365 プラットフォームでドキュメント処理の動作を確認します。
セキュリティの制限事項:
プライベート エンドポイントはサポートされません。 セキュリティで保護されたネットワーク構成は、 ファイアウォール経由で有効にする必要があります。
Microsoft Entra ID 条件付きアクセスが有効になっているテナントはサポートされません。
ユーザー暗号化ファイルとパスワードで保護された ZIP ファイルはサポートされていません。 ただし、暗号化されたコンテンツは、 Purview 秘密度ラベル によって保護されている場合、および それらのラベルを保持して受け入れするための構成 (プレビュー) が有効になっている場合に許可されます。
ドキュメント レベルのアクセス許可の制限付きサポート。 現在、アクセス制御リスト (ACL) 同期の基本レベルはパブリック プレビュー段階です。 詳細とセットアップについては、 SharePoint ACL の構成に関するドキュメント を参照してください。
Important
プレビュー中は、 SharePoint ACL インジェスト (プレビュー) と、同じインデクサーまたはインデックス内の 秘密度ラベル (プレビュー) の保持と受け入 れの両方をテストまたは有効にしないでください。 機能ごとに個別のインデクサー/インデックスを使用します。 現時点では、両方の機能の共存はサポートされていません。
この機能を使用する場合の考慮事項を次に示します。
Azure AI Search を使用して SharePoint データを操作するカスタム Copilot または Retrieval-Augmented Generation (RAG) アプリを構築するには、 SharePoint (リモート) ナレッジ ソースの使用をお勧めします。 このナレッジ ソースでは 、Copilot 取得 API を使用して、Microsoft 365 の SharePoint からテキスト コンテンツに直接クエリを実行し、マージ、ランク付け、応答の定式化のためにエージェント検索エンジンに結果を返します。 このナレッジ ソースで使用される検索インデックスはなく、テキスト コンテンツのみがクエリされます。 Azure AI Search はデータをレプリケートしません。 各ユーザーが表示を許可されている結果のみを返すことによって、SharePoint アクセス許可モデルが適用されます。
運用環境で SharePoint データとチャットするためにカスタムの Copilot/RAG (取得拡張生成) アプリケーションまたは AI エージェントを作成する必要がある場合は、最初に Microsoft Copilot Studio を使用して直接構築することを検討してください。
運用環境で、Copilot Studio の使用を推奨しますが、それでも Azure AI Search で SharePoint からデータをインデックスするカスタムのコパイロット/RAG アプリケーションまたはエージェントが必要な場合は、以下の点を考慮してください。
SharePoint Webhook を使用してカスタム コネクタを作成し、Microsoft Graph API を呼び出してデータを Azure BLOB コンテナーにエクスポートした後、増分インデックス作成に Azure BLOB インデクサーを使用します。
一般公開時に Azure Logic AppsSharePoint コネクタ と Azure AI Search コネクタ を使用して独自の Azure Logic Apps ワークフローを作成する。 Azure portal ウィザードによって生成されたワークフローを出発点として使用し、Azure Logic Apps デザイナーでカスタマイズして、必要な変換手順を含めることができます。 Azure AI Search ウィザード を使用して Microsoft 365 データの SharePoint のインデックスを作成するときに作成される Azure Logic App ワークフローは、 使用ワークフローです。 運用ワークロードを設定するときは、 標準のロジック アプリ ワークフロー に切り替えて、追加のエンタープライズ機能を使用します。
選択した方法に関係なく、SharePoint フックを使用してカスタム コネクタを構築するか、Azure Logic Apps ワークフローを作成するかに関係なく、確実に堅牢なセキュリティ対策を実装してください。 これらの対策には、共有プライベート リンクの構成、ファイアウォールの設定、ソースからのユーザーアクセス許可の保持、クエリ時のアクセス許可の優先などが含まれます。 また、パイプラインの監査と監視も定期的に行う必要があります。
Microsoft 365 インデクサーで SharePoint を構成する
Microsoft 365 インデクサーで SharePoint を設定するには、プレビュー REST API を使用します。 このセクションでは、手順について説明します。
手順 1 (省略可能): システム割り当てマネージド ID を有効にする
システム割り当てマネージド ID を有効にして、検索サービスがプロビジョニングされているテナントを自動的に検出します。
SharePoint サイトが検索サービスと同じテナントにある場合は、この手順を実行します。 SharePoint サイトが別のテナントにある場合は、この手順をスキップします。 ID はテナントの検出に使用されます。 接続文字列にテナント ID を含める場合は、この手順をスキップすることもできます。 システム マネージド ID を使用する場合、またはシークレットレス インデックス作成用にユーザー割り当てマネージド ID を構成する場合は、シークレットレス認証を使用してアプリケーションのアクセス許可を構成します
[保存] を選択すると、検索サービスに割り当てられたオブジェクト ID が表示されます。
手順 2: インデクサーに必要なアクセス許可を決定する
Microsoft 365 インデクサーの SharePoint では、 委任されたアクセス許可とアプリケーション アクセス許可の両方がサポートされています。 シナリオに基づいて、使用するアクセス許可を選択します。
アプリベースのアクセス許可をおすすめします。 委任されたアクセス許可に関連する既知の問題については、制限事項を参照してください。
アプリケーションのアクセス許可 (推奨)。インデクサーは、すべてのサイトとファイルにアクセスできる SharePoint テナントの ID で実行されます。 インデクサーには、クライアント シークレットが必要です。 インデクサーでは、コンテンツのインデックスを作成する前に 、テナント管理者の承認 も必要です。 このアクセス許可の種類は、基本的な ACL 保持 (プレビュー) 構成をサポートする唯一のアクセス許可の種類です。 委任されたアクセス許可を ACL 同期に使用することはできません。
委任されたアクセス許可。インデクサーは、要求を送信したユーザーまたはアプリケーションの ID で実行されます。 データ アクセスは、呼び出し元がアクセスできるサイトおよびファイルに制限されます。 デリゲートされたアクセス許可をサポートするため、インデクサーにはユーザーの代わりにサインインするためのデバイス コード プロンプトが必要です。 ユーザーによって委任されたアクセス許可では、この認証の種類の実装に使用された最新のセキュリティ ライブラリごとに、75 分ごとにトークンの有効期限が適用されます。 これは調整できるビヘイビアーではありません。 有効期限が切れたトークンには、「インデクサーの実行 (プレビュー)」を使用して手動でインデックスを作成する必要があります。 このため、代わりにアプリベースのアクセス許可を使用する必要があります。 この構成は、トークンの有効期限のため、またこのアクセス許可の種類では ACL 保持 構成のレベルがサポートされないため、小規模なテスト操作にのみ推奨されます。
手順 3: Microsoft Entra アプリケーション登録を作成する
Microsoft 365 インデクサーの SharePoint は、認証に Microsoft Entra アプリケーションを使用します。 Azure AI Search と同じテナントにアプリケーション登録を作成します。
Azure portal にサインインします。
Microsoft Entra ID を検索または移動し、[追加>App 登録] を選択します。
[+ 新規登録] を選択します。
- ご自分のアプリの名前を指定します。
- [シングル テナント] を選択します。
- URI 指定手順をスキップします。 リダイレクト URI は必要ありません。
- 登録 を選択します。
ナビゲーション ウィンドウの [ 管理] で、[ API のアクセス許可] を選択し、[ アクセス許可を追加]、[ Microsoft Graph] の順に選択します。
インデクサーでアプリケーション API のアクセス許可を使用する場合は、[ アプリケーション のアクセス許可] を選択します。
標準インデックス作成の場合は、次を選択します。
Files.Read.AllSites.Read.Allコンテンツインデックス作成と 基本的な ACL 同期 (プレビュー) を有効にする場合は、
Files.Read.AllSites.FullControl.All(Sites.Read.All ではなく) を選択します。コンテンツのインデックス作成を有効にし、 ACL 同期 (プレビュー) を特定のサイトに制限する必要がある場合は、次を選択します。
Files.Read.AllSites.Selected次に、選択したサイトに対してのみアプリケーションにフル コントロールを付与します。
アプリケーションのアクセス許可を使用すると、インデクサーはサービス コンテキスト内の SharePoint サイトにアクセスします。 そのため、インデクサーを実行すると、SharePoint テナントのすべてのコンテンツにアクセスできるようになります。そのためには、テナント管理者の承認が必要です。 認証には、クライアント シークレットまたはシークレットなしの構成も必要です。 認証メカニズムの設定については、この記事の後半で 、アプリケーション API のアクセス許可のみの認証モードで説明します。
インデクサーが委任された API アクセス許可を使用している場合は、[ 委任されたアクセス許可 ] を選択し、
Delegated - Files.Read.All、Delegated - Sites.Read.All、およびDelegated - User.Readを選択します。委任されたアクセス許可により、検索クライアントは、現在のユーザーのセキュリティ ID で SharePoint に接続できます。
管理者の同意を与えます。
アプリケーション API のアクセス許可を使用する場合は、テナント管理者の同意が必要です。 一部のテナントはロックダウンされていて、委任された API アクセス許可にも、そのテナント管理者の同意必要です。 これらの条件のいずれかが適用される場合は、インデクサーを作成する前に、テナント管理者がこの Microsoft Entra アプリケーションに同意する必要があります。
認証 タブを選択します。
[ パブリック クライアント フローを許可する] を [はい ] に設定し、[ 保存] を選択します。
[ + プラットフォームの追加]、[ モバイルおよびデスクトップ アプリケーション] の順に選択し、
https://login.microsoftonline.com/common/oauth2/nativeclientをオンにしてから [構成]をオンにします。ソリューションのニーズに応じてインデクサー 認証方法 を構成します。
アプリケーション API のアクセス許可にのみ使用できる認証方法
アプリケーションのアクセス許可を使用して Microsoft Entra アプリケーションを認証するために、インデクサーはクライアント シークレットまたはシークレットなしの構成を使用します。
クライアント シークレットの使用
SharePoint からデータを取り込むことができるように、クライアント シークレットを使用してインデクサーを認証するようにアプリケーションを構成する手順を次に示します。
左側のメニューから [証明書とシークレット ] を選択し、[ クライアント シークレット]、[ 新しいクライアント シークレット] の順に選択します。
ポップアップ表示されたメニューで、新しいクライアント シークレットの説明を入力します。 必要に応じて有効期限を調整します。 有効期限が切れた場合、シークレットを再作成する必要があり、インデクサーを新しいシークレットで更新する必要があります。
新しいクライアント シークレットが [シークレット] の一覧に表示されます。 ページから移動すると、シークレットは表示されなくなります。そのため、[コピー] ボタンを使用して値をコピーし、安全な場所に保存してください。
シークレットレス認証を使用してアプリケーション トークンを取得する
これらは、Microsoft Entra がマネージド ID を信頼してクライアント シークレットなしで認証するアプリケーション トークンを取得するようにアプリケーションを構成する手順です。これにより、インデクサーは SharePoint からデータを取り込むことができます。
マネージド ID を使用した登録済みアプリケーションの構成
シナリオの要件に応じて、 ユーザー割り当てマネージド ID を 作成 (または選択) し、検索サービスまたは システム割り当てマネージド ID に割り当てます。
オブジェクト (プリンシパル) ID をキャプチャします。 これは、データ ソースの作成時に資格情報の構成の一部として使用されます。
左側のメニューから [証明書とシークレット ] を選択します。
[ フェデレーション資格情報 ] で、[ + 資格情報の追加] を選択します。
[フェデレーション資格情報のシナリオ] で、[マネージド ID] を選択します。
マネージド ID の選択: 手順 1 で作成したマネージド ID を選択します。
資格情報の名前を追加し、[ 保存] をクリックします。
手順 4: データ ソースを作成する
このセクションから、残りの手順については、最新のプレビュー REST API と REST クライアント、またはサポートされている最新のベータ SDK を使用します。
データ ソースでは、インデックスを作成するデータ、資格情報、およびデータの変更 (新しい行、変更された行、削除された行) を効率よく識別するためのポリシーを指定します。 同じ検索サービス内の複数のインデクサーは、同じデータ ソースを使用できます。
SharePoint のインデックスを作成する場合は、次の必須プロパティがデータ ソースに必要です。
- name は、Search サービス内のデータ ソースの一意の名前です。
- type は "sharepoint" である必要があります。 この値は、大文字と小文字が区別されます。
-
資格情報は、 SharePoint エンドポイントと、アプリケーションが Microsoft Entra トークンを要求するために許可する認証方法を提供します。 SharePoint エンドポイントの例は、
https://microsoft.sharepoint.com/teams/MySharePointSiteです。 エンドポイントを取得するには、ご自分の SharePoint サイトのホーム ページに移動し、ブラウザーから URL をコピーします。 サポートされている構文の 接続文字列の形式 を確認します。 - container には、インデックスを作成するドキュメント ライブラリを指定します。 プロパティは、どのドキュメントにインデックスを付けるかを制御します。
データ ソースを作成するには、データ ソースの作成 (プレビュー) を呼び出します。
アプリケーション シークレットまたはサービス割り当てマネージド ID を持つ資格情報のデータ ソース定義サンプルを次に示します。
POST https://[service name].search.windows.net/datasources?api-version=2025-11-01-preview
Content-Type: application/json
api-key: [admin key]
{
"name" : "sharepoint-datasource",
"type" : "sharepoint",
"credentials" : { "connectionString" : "[connection-string]" },
"container" : { "name" : "defaultSiteLibrary", "query" : null }
}
ユーザー割り当てマネージド ID を持つ資格情報のデータ ソース定義のサンプルを次に示します。
POST https://[service name].search.windows.net/datasources?api-version=2025-11-01-preview
Content-Type: application/json
api-key: [admin key]
{
"name" : "sharepoint-datasource",
"type" : "sharepoint",
"credentials" : { "connectionString" : "[connection-string]" },
"container" : { "name" : "defaultSiteLibrary", "query" : null },
"identity": {
"@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
"userAssignedIdentity": "/subscriptions/[Azure subscription ID]/resourceGroups/[resource-group]/providers/Microsoft.ManagedIdentity/userAssignedIdentities/[user-assigned managed identity]"
}
}
接続文字列の形式
接続文字列の形式は、インデクサーが委任された API のアクセス許可を使用しているか、アプリケーション API のアクセス許可を使用しているかに基づいて変化します。
委任された API のアクセス許可の接続文字列の形式
SharePointOnlineEndpoint=[SharePoint site url];ApplicationId=[Azure AD App ID];TenantId=[SharePoint site tenant id]アプリケーション シークレット接続文字列形式を使用したアプリケーション API のアクセス許可
SharePointOnlineEndpoint=[SharePoint site url];ApplicationId=[Azure AD App ID];ApplicationSecret=[Azure AD App client secret];TenantId=[SharePoint site tenant id]シークレットレス (システム割り当てマネージド ID) 接続文字列形式のアプリケーション API アクセス許可
SharePointOnlineEndpoint=[SharePoint site url];ApplicationId=[Azure AD App ID];FederatedCredentialObjectId=[selected managed identity object (principal) ID];TenantId=[SharePoint site tenant id]
tenantIdは、Microsoft 365 サブスクリプションの Microsoft Entra 管理センターの概要ページから入手できます。
マネージド ID object (principal) IDを取得するには、「マネージド ID を使用した登録済みアプリケーションの構成」セクションを参照してください。
注
SharePoint サイトが検索サービスと同じテナント内にあり、システム割り当てマネージド ID が有効になっている場合は、TenantId を接続文字列に含める必要はありません。 SharePoint サイトが検索サービスとは異なるテナント内にある場合は、TenantId を含める必要があります。
インデクサーで SharePoint ACL 構成 (プレビュー) を使用している場合、または Microsoft Purview 秘密度ラベル (プレビュー) を保持して受け入れた場合は、インデクサーを作成する前に、データ ソースのセットアップに関連する記事を確認してください。 各機能には、特定の構成手順があります。
手順 5: インデックスを作成する
インデックスでは、検索に使用する、ドキュメント内のフィールド、属性、およびその他の構成要素を指定します。
インデックスを作成するには、インデックスの作成 (プレビュー) を呼び出します。
POST https://[service name].search.windows.net/indexes?api-version=2025-11-01-preview
Content-Type: application/json
api-key: [admin key]
{
"name" : "sharepoint-index",
"fields": [
{ "name": "id", "type": "Edm.String", "key": true, "searchable": false },
{ "name": "metadata_spo_item_name", "type": "Edm.String", "key": false, "searchable": true, "filterable": false, "sortable": false, "facetable": false },
{ "name": "metadata_spo_item_path", "type": "Edm.String", "key": false, "searchable": false, "filterable": false, "sortable": false, "facetable": false },
{ "name": "metadata_spo_item_content_type", "type": "Edm.String", "key": false, "searchable": false, "filterable": true, "sortable": false, "facetable": true },
{ "name": "metadata_spo_item_last_modified", "type": "Edm.DateTimeOffset", "key": false, "searchable": false, "filterable": false, "sortable": true, "facetable": false },
{ "name": "metadata_spo_item_size", "type": "Edm.Int64", "key": false, "searchable": false, "filterable": false, "sortable": false, "facetable": false },
{ "name": "content", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false }
]
}
Important
metadata_spo_site_library_item_idのみ、Microsoft 365 インデクサーの SharePoint によって設定されたインデックスのキー フィールドとして使用できます。 キー フィールドがデータ ソースに存在しない場合、metadata_spo_site_library_item_id は自動的にキー フィールドにマップされます。
インデクサーが SharePoint ACL 構成 (プレビュー) を使用する場合、または Microsoft Purview 秘密度ラベル (プレビュー) を保持して尊重する場合は、各記事でインデックスとスキルセットの構成を確認してから、インデクサーの作成に進んでください。これらの機能には特定の構成があるためです。
手順 6: インデクサーを作成する
インデクサーはデータ ソースをターゲットの検索インデックスに接続し、データ更新を自動化するスケジュールを提供します。 インデックスとデータ ソースを作成した後、インデクサーを作成できます。
委任されたアクセス許可を使用している場合、この手順では、SharePoint サイトにアクセスできる組織の資格情報でサインインするように求められます。 可能であれば、新しい組織ユーザー アカウントを作成し、その新しいユーザーに、インデクサーに必要なアクセス許可を付与することをお勧めします。
インデクサーを作成するには、いくつかの手順があります。
インデクサーの作成 (プレビュー) 要求を送信します。
POST https://[service name].search.windows.net/indexers?api-version=2025-11-01-preview Content-Type: application/json api-key: [admin key] { "name" : "sharepoint-indexer", "dataSourceName" : "sharepoint-datasource", "targetIndexName" : "sharepoint-index", "parameters": { "batchSize": null, "maxFailedItems": null, "base64EncodeKeys": null, "maxFailedItemsPerBatch": null, "configuration": { "indexedFileNameExtensions" : ".pdf, .docx", "excludedFileNameExtensions" : ".png, .jpg", "dataToExtract": "contentAndMetadata" } }, "schedule" : { }, "fieldMappings" : [ { "sourceFieldName" : "metadata_spo_site_library_item_id", "targetFieldName" : "id", "mappingFunction" : { "name" : "base64Encode" } } ] }アプリケーションのアクセス許可を使っている場合は、インデックスのクエリを始める前に、最初の実行が完了するのを待つ必要があります。 このステップで説明する次の手順は、委任されたアクセス許可に特に関連するものであり、アプリケーションのアクセス許可には適用されません。
初めてインデクサーを作成する場合、インデクサーの作成 (プレビュー) 要求は次の手順を完了するまで待機します。 [インデクサー状態の取得] を呼び出してリンクを取得し、新しいデバイス コードを入力する必要があります。
GET https://[service name].search.windows.net/indexers/sharepoint-indexer/status?api-version=2025-11-01-preview Content-Type: application/json api-key: [admin key]10 分以内に インデクサーの状態の取得 を実行しない場合、コードの有効期限が切れ、 データ ソースを再作成する必要があります。
インデクサーの状態の取得応答からデバイス ログイン コードをコピーします。 デバイスのログインは、"errorMessage" にあります。
{ "lastResult": { "status": "transientFailure", "errorMessage": "To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code <CODE> to authenticate." } }エラー メッセージに含まれているコードを指定します。
Microsoft 365 インデクサーの SharePoint は、サインインしているユーザーとして SharePoint コンテンツにアクセスします。 この手順でログインするユーザーは、そのサインインしているユーザーになります。 そのため、インデックスを作成するドキュメント ライブラリ内のドキュメントにアクセスできないユーザー アカウントでサインインすると、インデクサーはそのドキュメントにアクセスできなくなります。
可能であれば、新しいユーザー アカウントを作成し、その新しいユーザーに、インデクサーに必要なアクセス許可を付与することをお勧めします。
要求されているアクセス許可を承認します。
インデクサーの作成 (プレビュー) の最初の要求は、上記で提供されたすべてのアクセス許可が正しく、かつ 10 分の時間枠内であれば完了します。
注
Microsoft Entra アプリケーションに管理者の承認が必要であり、ログイン前に承認されていない場合は、次の画面が表示されることがあります。
続行するには、管理者の承認が必要です。
手順 7: インデクサーの状態を確認する
インデクサーが作成された後、インデクサー状態の取得を呼び出すことができます。
GET https://[service name].search.windows.net/indexers/sharepoint-indexer/status?api-version=2025-11-01-preview
Content-Type: application/json
api-key: [admin key]
データ ソースの更新
データ ソース オブジェクトに対する更新がない場合、ユーザーの介入なしにスケジュールに基づいてインデクサーを実行します。
デバイス コードの有効期限が切れている間にデータ ソースを変更した場合は、もう一度サインインしてインデクサーを実行します。 たとえば、データ ソース クエリを変更した場合は、https://microsoft.com/devicelogin を使用してもう一度サインインし、新しいデバイス コードを取得します。
期限切れのデバイス コードを想定して、データ ソースを更新する手順を次に示します。
インデクサーの実行 (プレビュー) を呼び出し、インデクサーの実行を手動で開始します。
POST https://[service name].search.windows.net/indexers/sharepoint-indexer/run?api-version=2025-11-01-preview Content-Type: application/json api-key: [admin key]インデクサーの状態を確認します。
GET https://[service name].search.windows.net/indexers/sharepoint-indexer/status?api-version=2025-11-01-preview Content-Type: application/json api-key: [admin key]https://microsoft.com/deviceloginにアクセスするように求めるエラーが発生した場合は、ページを開き、新しいコードをコピーします。コードをダイアログ ボックスに貼り付けます。
もう一度手動でインデクサーを実行し、インデクサーの状態を確認します。 今度はインデクサーの実行が正常に開始されるはずです。
ドキュメント メタデータのインデックス作成
ドキュメント メタデータ ("dataToExtract": "contentAndMetadata") のインデックスを作成する場合は、次のメタデータを使用して、インデックスを作成できます。
| 識別子 | タイプ | Description |
|---|---|---|
| metadata_spo_site_library_item_id | Edm.String | サイトのドキュメント ライブラリ内にある項目を一意に識別する、サイト ID、ライブラリ ID、および項目 ID を組み合わせたキー。 |
| metadata_spo_site_id | Edm.String | SharePoint サイトの ID。 |
| metadata_spo_library_id | Edm.String | ドキュメント ライブラリの ID。 |
| metadata_spo_item_id | Edm.String | ライブラリ内にある (ドキュメント) 項目の ID。 |
| metadata_spo_item_last_modified | Edm.DateTimeOffset | 項目の最終変更日時 (UTC)。 |
| metadata_spo_item_name | Edm.String | アイテムの名前。 |
| metadata_spo_item_size | Edm.Int64 | 項目のサイズ (バイト単位)。 |
| metadata_spo_item_content_type | Edm.String | 項目のコンテンツ タイプ。 |
| metadata_spo_item_extension | Edm.String | 項目の拡張子。 |
| metadata_spo_item_weburi | Edm.String | 項目の URI。 |
| metadata_spo_item_path | Edm.String | 親パスと項目名の組み合わせ。 |
Microsoft 365 インデクサーの SharePoint では、各ドキュメントの種類に固有のメタデータもサポートされています。 詳細については、Azure AI Search で使用されるコンテンツ メタデータのプロパティに関するページを参照してください。
注
カスタム メタデータのインデックスを作成するには、データ ソースのクエリ パラメーターに "additionalColumns" を指定する必要があります。
ファイルの種類で含めるか除外する
インデクサー定義の "parameters" セクションに包含と除外の条件を設定して、どのファイルのインデックスを作成するかを制御できます。
特定のファイル拡張子を含めるには、"indexedFileNameExtensions" をファイル拡張子 (先頭のドットを含む) のコンマ区切りリストに設定します。 特定のファイル拡張子を除外するには、"excludedFileNameExtensions" をスキップする拡張子に設定します。 同じファイル拡張子が両方のリストにある場合、それはインデックス作成から除外されます。
PUT /indexers/[indexer name]?api-version=2025-11-01-preview
{
"parameters" : {
"configuration" : {
"indexedFileNameExtensions" : ".pdf, .docx",
"excludedFileNameExtensions" : ".png, .jpeg"
}
}
}
インデックスを作成するドキュメントの制御
Microsoft 365 インデクサーの 1 つの SharePoint で、1 つ以上のドキュメント ライブラリのコンテンツにインデックスを作成できます。 インデックスを作成するサイトとドキュメント ライブラリを指定するには、データ ソース定義で "container" パラメーターを使用します。
データ ソースの "container" セクションには、"name" と "query" という 2 つのプロパティがあります。
名前
"name" プロパティは必須で、次の値のいずれかである必要があります。
| 価値 | Description |
|---|---|
| デフォルトサイトライブラリー | サイトの既定のドキュメント ライブラリにあるすべてのコンテンツのインデックスを作成します。 |
| allSiteLibraries | サイト内のすべてのドキュメント ライブラリにあるすべてのコンテンツのインデックスを作成します。 サブサイトのドキュメント ライブラリはスコープ外です。サブサイトのコンテンツが必要な場合は、"useQuery" を選択して "includeLibrariesInSite" を指定します。 |
| useQuery | "query" で定義されているコンテンツのインデックスのみを作成します。 |
Query
データ ソースの "query" パラメーターは、キーワードと値のペアで構成されます。 使用できるキーワードを以下に示します。 値は、サイトの URL またはドキュメント ライブラリの URL のいずれかです。
注
特定のキーワードの値を取得するには、含める/除外しようとしているドキュメント ライブラリに移動し、ブラウザーから URI をコピーすることをお勧めします。 これは、クエリのキーワードと共に使用する値を取得する最も簡単な方法です。
| Keyword | 値の説明と例 |
|---|---|
| null 値 | null 値または空の場合は、コンテナー名に応じて、既定のドキュメント ライブラリまたはすべてのドキュメント ライブラリのいずれかのインデックスを作成します。 例: "container" : { "name" : "defaultSiteLibrary", "query" : null } |
| サイトにライブラリを含める | 接続文字列に含まれる指定されたサイトで、すべてのライブラリにあるコンテンツのインデックスを作成します。 値は、サイトまたはサブサイトの URI である必要があります。 例 1: "container" : { "name" : "useQuery", "query" : "includeLibrariesInSite=https://mycompany.sharepoint.com/mysite" } 例 2 (少数のサブサイトのみを含む): "container" : { "name" : "useQuery", "query" : "includeLibrariesInSite=https://mycompany.sharepoint.com/sites/TopSite/SubSite1;includeLibrariesInSite=https://mycompany.sharepoint.com/sites/TopSite/SubSite2" } |
| includeLibrary | このライブラリにあるすべてのコンテンツのインデックスを作成します。 値は、ライブラリへの完全修飾パスであり、ブラウザーからコピーできます。 例 1 (完全修飾パス): "container" : { "name" : "useQuery", "query" : "includeLibrary=https://mycompany.sharepoint.com/mysite/MyDocumentLibrary" } 例 2 (ブラウザーからコピーした URI): "container" : { "name" : "useQuery", "query" : "includeLibrary=https://mycompany.sharepoint.com/teams/mysite/MyDocumentLibrary/Forms/AllItems.aspx" } |
| excludeLibrary | このライブラリにあるコンテンツのインデックスを作成しません。 値は、ライブラリへの完全修飾パスであり、ブラウザーからコピーできます。 例 1 (完全修飾パス): "container" : { "name" : "useQuery", "query" : "includeLibrariesInSite=https://mysite.sharepoint.com/subsite1; excludeLibrary=https://mysite.sharepoint.com/subsite1/MyDocumentLibrary" } 例 2 (ブラウザーからコピーした URI): "container" : { "name" : "useQuery", "query" : "includeLibrariesInSite=https://mycompany.sharepoint.com/teams/mysite; excludeLibrary=https://mycompany.sharepoint.com/teams/mysite/MyDocumentLibrary/Forms/AllItems.aspx" } |
| additionalColumns | ドキュメント ライブラリにある列にインデックスを作成します。 値は、インデックスを作成する対象の列名のコンマ区切りのリストです。 列名に含まれるセミコロンとコンマは、二重円記号を使用してエスケープします。 例 1 (additionalColumns=MyCustomColumn,MyCustomColumn2): "container" : { "name" : "useQuery", "query" : "includeLibrary=https://mycompany.sharepoint.com/mysite/MyDocumentLibrary;additionalColumns=MyCustomColumn,MyCustomColumn2" } 例 2 (二重円記号を使用したエスケープ文字): "container" : { "name" : "useQuery", "query" : "includeLibrary=https://mycompany.sharepoint.com/teams/mysite/MyDocumentLibrary/Forms/AllItems.aspx;additionalColumns=MyCustomColumnWith\\,,MyCustomColumnWith\\;" } |
エラーの処理
既定では、Microsoft 365 インデクサーの SharePoint は、サポートされていないコンテンツ タイプ (画像など) のドキュメントが検出されるとすぐに停止します。
excludedFileNameExtensions パラメーターを使用して特定のコンテンツの種類をスキップできます。 ただし、存在する可能性のあるすべてのコンテンツ タイプが事前にわからないままドキュメントのインデックスを作成する必要がある場合もあります。 サポートされていないコンテンツ タイプが検出されたときにインデックス作成を続行するには、failOnUnsupportedContentType 構成パラメーターを false に設定します。
PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2025-11-01-preview
Content-Type: application/json
api-key: [admin key]
{
... other parts of indexer definition
"parameters" : { "configuration" : { "failOnUnsupportedContentType" : false } }
}
一部のドキュメントについては、Azure AI Search でコンテンツ タイプを判別できないことや、他ではサポートされているコンテンツ タイプのドキュメントを処理できないことがあります。 この障害モードを無視するには、failOnUnprocessableDocument 構成パラメーターを false に設定します。
"parameters" : { "configuration" : { "failOnUnprocessableDocument" : false } }
Azure AI Search では、インデックスを作成するドキュメントのサイズが制限されています。 これらの制限は、「Azure AI Search のサービス制限」に記載されています。 サイズが大きいドキュメントは、既定ではエラーとして扱われます。 ただし、indexStorageMetadataOnlyForOversizedDocuments 構成パラメーターを true に設定した場合、サイズが大きいドキュメントのストレージ メタデータのインデックスも作成することができます。
"parameters" : { "configuration" : { "indexStorageMetadataOnlyForOversizedDocuments" : true } }
ドキュメントの解析中またはインデックスへのドキュメントの追加中、処理のどこかの時点でエラーが発生した場合に、インデックス作成を続行することもできます。 特定数のエラーを無視するには、構成パラメーター maxFailedItems と maxFailedItemsPerBatch を望ましい値に設定します。 例えば次が挙げられます。
{
... other parts of indexer definition
"parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 10 }
}
SharePoint サイト上のファイルで暗号化が有効になっている場合は、次のようなエラー メッセージが表示されることがあります。
Code: resourceModified Message: The resource has changed since the caller last read it; usually an eTag mismatch Inner error: Code: irmEncryptFailedToFindProtector
エラー メッセージには、SharePoint サイト ID、ドライブ ID、ドライブ項目 ID も次のパターンで含まれます: <sharepoint site id> :: <drive id> :: <drive item id>。 この情報を使用して、SharePoint 側で障害が発生している項目を識別できます。 その後、ユーザーは項目から暗号化を削除して問題を解決できます。