
企業のデータやナレッジが急速に増大する現代において、各社の特性に合わせた最適なエンタープライズサーチの実現が重要な課題となっています。Gleanのカスタムコネクタを活用することで、企業独自のデータソースを効率的に検索し、エンタープライズサーチの真の価値を引き出すことが可能になります。本記事では、Gleanカスタムコネクタの基本と、その導入メリットについて解説します。
カスタムコネクタとは?
Gleanのカスタムコネクタは、企業が保有する独自データソースをGleanの検索インデックスに追加できる機能です。これにより、オンプレミスで構築している社内のドキュメント管理システムや、ニッチなビジネスアプリケーションのデータもエンタープライズサーチの検索対象に含めることが可能になります。
※アシストではカスタムコネクタを通して、以下のシステムとの連携実績があります。
社内イントラネット
Panopto(動画管理プラットフォーム)
rakumo(社内掲示板)
Udemy(オンライン学習プラットフォーム)
WebFOCUS(BIプラットフォーム)
Backlog(プロジェクト管理ツール)
システム全体像で表すと以下のイメージです。
BoxやM365などGlean社が標準提供するネイティブコネクタと同じように、カスタムコネクタを通してGleanのインデックスに対してデータをプッシュします。

ネイティブコネクタであれば、アプリケーションごとに定められた時間感覚で自動的にデータをクロールしてインデックスを更新しますが、カスタムコネクタの場合は、全て手動で作りこむ必要があります。
例えば、
タスクスケジューラを用いて更新用のスクリプトを定期的に実行
独自アプリのログファイルから更新イベントをトリガーにしてスクリプトを実行
非常に高い自由度があり、適切に設計すれば細かな要件に応じたエンタープライズサーチを実現できます。
ここから、どのような流れで構築ができ、どのような作り込みが必要なのかについて解説してきます。
構築フロー
要件に応じてどのようなプログラム処理が必要になるかは変わりますが、よくある構築パターンとして以下要件を想定して説明します。
全件データを一括登録
閲覧権限を含めてデータ付与

Glean管理画面での操作
まず、Glean管理画面にてカスタムコネクタのセットアップを行います。
データソース名の設定
URLパターンの定義
オブジェクトの種類(ドキュメント、チケット、メッセージなど)の設定

次に、定義したカスタムコネクタを通じてGleanにデータをプッシュするためのAPIトークンを発行します。
セキュリティ対策として、実行元のIPアドレスをグリーンリストで制限をかけたり、ローテーションを行う制限時間を設定することが可能です。

プログラム処理
閲覧権限をGleanに反映させる場合は4つのエンドポイントに対して適切な形式でデータをインデックスとしてプッシュする必要があります(権限設定が不要であれば、1つのエンドポイントのみの利用で済みます)。
各エンドポイントにプッシュするデータについて説明します。
indexuser
接続データソースにアクセスできるユーザーを定義します。
(GleanのPeopleデータ登録有無に関わらず、接続データソースにアクセスできる全ユーザーを定義)
▼PUSHデータ
{'datasource': 'custom', 'users': [{'email': '社員Aのメールアドレス', 'name': '社員Aの氏名', 'isActive': True},{'email': '社員Bのメールアドレス', 'name': '社員Bの氏名', 'isActive': True}]}
indexgroup
接続データソースに定義されているグループを設定します。
(GleanのPeopleデータにおける「部署」や「勤務地」とは異なる概念)。
※グループでの権限設定がない場合は不要です。
▼PUSHデータ
{'datasource': 'custom', 'groups’': [{'name': '営業本部'}, {'name': '営業一課'}]}
ここでは営業とエンジニアというグループを定義しています。
indexmembership
indexuser で定義したユーザーをindexgroupで定義したグループに所属させます。
※グループでの権限設定がない場合は不要です。
▼PUSHデータ
{'datasource': 'custom', ‘group’: ‘営業本部’,memberships: [{‘memberUserId’: ‘社員Aのメールアドレス’},{‘memberUserId’: ‘社員Bのメールアドレス’},{‘memberGroupName’: ‘営業一課’}]}
ここでは、営業本部に2名のユーザーと1つのグループ(営業一課)を所属させています。
indexdocument
Gleanで検索するドキュメント情報をプッシュします。
permissions 属性でユーザ/グループ単位の検索権限を設定できます。
▼PUSHデータ
{'datasource': 'custom', ‘objectType’: ‘Document’, ‘id’: ‘abcde’, ‘title’: ‘ドキュメントタイトル’, ‘body’: {‘mimeType’: ‘text/plain’, ‘textContent’: ‘ドキュメントの中身’}, ‘permissions’: {‘allowedGroups’: [‘営業本部’]}, ‘viewURL’: ‘http://servername/aaa’}
この設定により、indexmembershipで営業本部に所属させたユーザーのみがこのドキュメントを検索できます。

権限については、各ドキュメントに対して以下単位での付与が可能です。
| allowedUsers | ユーザー単位で権限を付与することができます |
| allowedGroups | グループ単位のOR条件で権限を付与することができます |
| allowedGroupIntersections | グループ単位のAND条件で権限を付与することができます |
| allowAnonymousAccess | Gleanの全ユーザーに対して権限を付与することができます |
| allowAllDatasourceUsersAccess | indexuserで定義した全ユーザーに対して権限を付与することができます |
また、ドキュメントの情報として以下をプッシュすることが可能です。
| title | ドキュメントのタイトル |
| container | ドキュメントの保存先(フォルダ名など) |
| objectType | ドキュメントのタイプ(Document、Ticket、Caseなど) |
| viewURL | ドキュメントのパーマリンク※クリックしたときに遷移します |
| id | ドキュメントの固有ID |
| summary | ドキュメントのサマリ※検索結果画面にて上位表示される文言となります |
| body | ドキュメントの中身 |
| author | ドキュメントの作成者 |
| owner | ドキュメントの所有者 |
| permission | ドキュメントの権限 |
| createdAt | 作成時間(エポック秒) |
| updatedAt | 更新時間(エポック秒) |
| undatedBY | 更新者 |
| tags | ドキュメントに関連付けたいラベル |
| comments | ドキュメントに関連付けられたコメント |
| interactions | 閲覧数/いいね数/コメント数 |
| customProperties | 独自のメタデータ情報 |
構築のポイント
1.連携可否の確認
接続したいデータソースからドキュメントやファイルの情報を取得できるか確認します。
特に、スクラッチで独自開発したシステムでは、APIなどを通じた情報取得が想定されていない場合があります。
2.実装ポイントの整理
権限をGleanに踏襲するかどうか
更新頻度(日次/週次/月次、またはイベントトリガー)をどうするか
更新方法をどうするか(全権一括更新か差分更新か)
開発・保守・実行の担当者と勤務場所
アシストで行える支援について
アシストでは、主に以下の「カスタムデータソース連携フォロー支援」を提供しています。
Indexing API機能に関する説明、情報提供
要件に対する実装や実現可否等のアドバイス
開発・運用に関するQ&A対応
進め方のイメージは以下画像をご確認ください。
(アシストでの経験上、カスタムコネクタの構築はアジャイル方式を推奨しております)

アシストでの利用例
アシストでは、Gleanの一つの検索窓を通して30を超えるアプリケーションを横断的に検索できる環境を構築しています。
イントラネット:イントラネットをGleanで検索可能に
社内掲示板:社内掲示板アプリをGleanから検索可能に
Udemy:学習コンテンツとラーニングパスをGleanで検索・利用可能に
WebFOCUS: BIツールのレポートをGleanで検索して実行可能に
Udemy
Udemyの学習コンテンツとラーニングパスをGleanで検索して利用できるようにカスタムコネクタを構築しています。


まとめ
Gleanのカスタムコネクタは、企業が持つ多様なデータソースを一元的に検索可能にする強力なツールです。標準で提供されていないシステムやアプリケーションとの連携を実現し、情報へのアクセス性を飛躍的に向上させることができます。
構築には技術的な知識と作り込みが必要ですが、その自由度の高さから企業特有の要件に柔軟に対応できるのが最大の魅力です。権限管理から更新頻度まで細かくカスタマイズすることで、企業のナレッジマネジメントをより効果的に支援します。
執筆者情報

河野祐人
株式会社アシスト
2020年に新卒入社。
BI製品のフィールド技術/サポート担当を経て、現在はGleanのフィールド技術に従事。