BoxのメタデータAPIを使用すると、Boxメタデータに基づいてプログラムでコンテンツを検索できます。メタデータAPIを使用すると、以下のことが可能です。
- 従来のSQLクエリと似た構造で一連のパラメータや条件を渡す
- 一致するファイルやフォルダを、対応するメタデータと共に取得する
メタデータクエリAPIは検索APIを補完するものです。検索APIは、これまで、APIを使用してメタデータに基づいてコンテンツを検索する唯一の方法でした。
メタデータAPIの使用
メタデータクエリAPIは、以下の場合に使用します。
- ドキュメントのコンテンツではなく、Boxメタデータに厳密に基づいてコンテンツを検索する場合
- メタデータ値に対する作成、更新、削除がすぐに反映される結果を求める場合
- コンテンツの検索にSQLに似たロジックを使用する場合
メタデータクエリAPIを使用すると、カスタムメタデータに格納されている値に厳密に基づいてコンテンツを検索することができます。メタデータクエリの構造はSQLクエリと似ているため、SQLの使用経験があるユーザーにとっては使いやすく感じるはずです。メタデータクエリAPIにより、ブール演算子 (AND、OR、NOTなど) のほか、比較演算子や範囲演算子 (=、>、<など) を使用してメタデータテンプレートに対するクエリを作成し、すぐに結果を取得できます。
メタデータクエリAPIの主な利点は、メタデータの作成、更新、即時削除が結果に反映される点です。さらに、検索APIと同様、インデックスの作成が遅延することはありません。 また、メタデータクエリAPIは、クエリ可能な文字数に関して制限はありません。制限されるのは、メタデータインスタンスのサイズ自体だけです。
検索APIとは異なり、メタデータクエリAPIでは「enterprise_content」スコープがサポートされていません。 メタデータクエリで返されるのは、コラボレータとしてアクセスできるコンテンツに対する結果のみです。
メタデータのクエリ実行とインデックスの詳細については、こちらのDeveloperドキュメントを参照してください: https://ja.developer.box.com/guides/metadata/queries/
検索APIの使用
検索APIは、以下が必要な場合に使用します。
- あいまい一致
- ドキュメントのテキストやメタデータに基づく結果
- 企業全体での検索
検索APIを使用すると、主にファイル名やフォルダ名のほか、対応するドキュメントのテキストで検索して、最も関連性の高い結果を取得できます。また、検索APIを使用して、メタデータの条件に基づいて結果を検索したり絞り込んだりできますが、このような検索は、シンプルなブール検索 (「field」=「値」など) に制限されます。
ファイル名やドキュメントテキストでの検索と同様に、メタデータ検索も厳密には「あいまい」検索です。 つまり、検索対象の用語が正確に含まれていない結果が返される可能性があります。
Boxの検索APIは、インデックス作成に依存しています。インデックス作成は、コンテンツやメタデータをアップロードまたは変更するたびに発生するプロセスです。インデックス作成により、検索APIでは、コンテンツをより簡単に検索できますが、いくつか制限があります。 検索APIには、主に以下の2つの制限があります。
- インデックス作成プロセスは即時性がないため、コンテンツはすぐに検索できるようになりません。 一般的に、インデックス作成は10分以内に実行されますが、システムの負荷によっては時間がかかることがあります。
- メタデータフィルタでサポートされる操作は限定的です。検索APIでは、複数のメタデータフィールドが比較されません。
管理者の場合は、「enterprise_content」スコープを使用して検索できます。つまり、ファイルを表示するためのアクセス権限がなくても、eDiscoveryなどのプロセスに関するファイルの情報を取得できます。
メタデータクエリと検索のシナリオ
この2つのツールはどちらも自由に使用できるので、いつ、どちらを使用するかを選択できるようになりました。
しかし、どちらを使用すべきでしょうか。
検索APIを使用するタイミングとメタデータクエリAPIを使用するタイミングを示す状況をいくつか紹介します。
シナリオ | 使用するツール |
---|---|
eDiscoveryの「Guarantee」というキーワードと一致するドキュメントのテキストやメタデータを使用して、社内のすべてのコンテンツを検索する。 | 検索API
|
メタデータテンプレート「Contract」を使用して、以下の条件に当てはまるすべてのドキュメントを検索する。
|
メタデータクエリ
|
メタデータテンプレート「Contract」を使用して、以下の条件に当てはまるすべてのドキュメントを検索する。
|
これはサポート対象外です。
|