CCCMKホールディングス TECH LABの Tech Blog

TECH LABのエンジニアが技術情報を発信しています

ブログタイトル

AI SearchのSharePointからのインデックス作成をやってみました

こんにちは、CCCMKホールディングスTECH LABの井上です。

昨年11月にプレビュー公開されたAzure AI SearchのSharePointからのインデックス作成機能を使ってみました。 AI SearchはBlob、SQL Server、Table Storage等からデータを取得してインデックスを作成できるのですが、SharePointがその中に新たに加わった形です。

SharePointから取得できるものはドキュメントライブラリ内にあるPDFやMS Office等のファイルとなります。ASPX(ページ内に書いてあるテキスト)やリストからは取得できないようです。 弊社でも社内のブログや営業レポート等でASPXを使っているのでそこを取得できないのが少し残念です。 現状ではドキュメントファイル置き場としてのSharePointという位置づけで捉えておいた方がよいです。

作業は公式のドキュメントを元に進めていけば特に問題になるところもないと思うので実行手順等は省きます。

今回作業した環境は以下のような構成でSharePointとAI Searchが別テナントになっています。 テナントを跨ぐ場合、EntraIDアプリケーションの設置はSharePointがあるテナントに設定します。([公式ドキュメント]手順 3: Microsoft Entra アプリケーション登録を作成する)

「[公式ドキュメント]手順 2: インデクサーに必要なアクセス許可を決定する」ですが今回の処理はユーザの介入(ログイン)がないので、アクセス許可の方式はアプリケーションのアクセス許可になります。

インデックスが無事に作成できると以下のようにPortalからの検索で内容が確認できます。

ドキュメント名、パス、テキストが入っているのが確認できます。 これでも単純検索はできるのですが、最近のAI Searchの強みであるベクトル検索も追加できないかと思い、別で行ったBlobからベクトルデータを作成したときのAPIを流用して実行してみました。 APIの実行手順は以下の通りで1番のデータソースをBlobからSharePointに変更したらできそうです。

1.データソース作成
 データ取得元を設定します
2.インデックス作成
 フィールドの作成
3.スキルセット作成
 データに対して行う処理の作成
4.インデクサー作成
 フィールドマッピングの作成
5.インデクサー実行
 インデックスにデータが入ります

また、データソースの変更に加えてインデックスにSharePointのドキュメント名(metadata_spo_item_name)のフィールドを追加しました。
以下は作成後Portalから確認した結果です。

ベクトルデータが作成されてるのは確認できます。一方ドキュメント名は取得できてませんでした。 実際の運用を想定すると検索結果からリンクできないと不便です。

そもそも仕様上できるかが不明ですが、もう少し調べてみようと思います。
無事にできたらまたこちらのブログに上げようと思います。
(先にAI SearchのバージョンアップでPortalからのSharePointのデータインポートできるようになる気もします)