💻

Microsoft Search を使って Azure SQL Database を検索できるようにする

2022/01/03に公開

はじめに

Microsoft Search は Microsoft 365 に格納されるさまざまなデータを横断的に検索できる機能ですが、その拡張として、Microsoft Graph コネクタを使って外部データをクロールして Microsoft Search に統合することができます。統合されたデータは標準の UI から検索できるようになるほか、Microsoft Graph API からも利用できるようになります。

今回は Azure SQL Database に接続して結果を表示してみたいと思います。

実行方法

Microsoft Search の設定は Microsoft 365 管理センターから行います。メニューの 設定 - 検索とインテリジェンス をクリックします。

データ ソースの追加

データ ソース のタブの 追加 をクリックするとデータ ソースを追加できます。

データ ソースの選択

今回はデータ ソースとして Azure SQL を使用しますが、さまざまなデータ ソースに接続できます。

どのようなデータに接続できるかは以下の Microsoft Docs を参照してください。

https://docs.microsoft.com/ja-jp/microsoftsearch/connectors-overview?WT.mc_id=M365-MVP-5002941

接続名

名前 は表示名のため任意に指定できますが、接続 ID はテナント内で一意である必要があります。また、免責事項に同意する必要があります。

データベースの設定

サーバー名 および データベース名 を指定します。Azure SQL Database がパブリック ネットワーク アクセスを許可している場合は特にそのままで構成できますが、仮想ネットワークに存在する場合 (どちらかというとこちらの可能性が高いはずです) は、Microsoft Graph コネクタ エージェントをインストールする必要があります。この場合、免責事項にある通り、Microsoft Search によりクロールされたインデックス データは Microsoft によって保持されることに注意してください。

フル クロール

フル クロールのための SQL を記述します。ここで選択した列はインデックスの対象になるほか、アクセス許可の制御をするための列を選択することもできます。またクロールの負荷分散を行うための基準値列を指定する必要があります。これはオート ナンバーやタイムスタンプのようにデータ更新を識別できる値である必要があります。

増分クロール

こちらは必須ではありませんが更新された値のみをインデックスする増分クロールを構成することができます。

プロパティ ラベルの割り当て

クロールで選択したプロパティと Microsoft Search の既存の管理プロパティをマッピングすることができます。SharePoint 検索でいうところのクロールされたプロパティを管理プロパティにマッピングするのと同様です。

スキーマの管理

クロールで選択したプロパティをどのように検索できるかどうかを指定します。これも SharePoint 検索を管理したことがある方であればおなじみの設定になります。

項目 説明
検索可能 プロパティをキーワード検索 (全文検索) できるかどうかを指定します
クエリ可能 プロパティを指定して検索できるかどうかを指定します
取得可能 プロパティを検索結果として取得できるかどうかを指定します
絞り込み可能 プロパティを絞り込みできるかどうかを指定します

検索アクセス許可

すべてのユーザー を指定します。

更新の設定

フル クロールおよび増分クロールの更新間隔を指定します。

接続の確認

最後に設定を確認して問題なければ完了です。完了してしばらく待つとデータ ソースが利用できるようになります。

結果の種類の追加

作成したデータ ソースを表示するためのレイアウトを構成します。これも SharePoint 検索のときは JavaScript を修正していたのですが Adaptive Cards で指定できるようになりました。Adaptive Cards もデザイナーでテンプレートから簡単に作成することができます。

https://searchlayoutdesigner.azurewebsites.net/chooseLayout

作成した JSON を貼り付ければ完了です。

バーティカルの追加

検索結果のタブを構成します。ここではオプションでクエリやフィルターを設定することができます。

実行結果

以下のように Microsoft Search の検索結果として統合して表示されるのがわかります。

おわりに

内部の実装としては SharePoint 検索を引き継いでいますので、SharePoint 検索をカスタマイズしたことがある人であれば、それほど困らないのではないかと思います。逆に SharePoint 検索の概念 (フル クロール、増分クロール、クロールされたプロパティ、管理プロパティなどの用語) がわからないとちょっととっつきにくいかもしれないと思いました。

注意点として、Microsoft Search でインデックスできる件数は Microsoft 365 E5 または Office 365 E5 の 1 ライセンスあたり 500 件であるという点です。意外に少ないので注意しましょう。必要であれば追加の容量を購入できます。

https://docs.microsoft.com/ja-jp/microsoftsearch/licensing?WT.mc_id=M365-MVP-5002941

Discussion