第3回、第4回にわたって、ESPの持つべき機能(検索、セキュリティ、ナビゲーション)についての概念的な解説をおこなってきた。このような機能を備えたESPであるが、ただ漫然と構築してもその利便性にあずかることはできない。対象とするストレージの規模、更新頻度、利用の集中する時間帯などを考慮し適切なプロダクトを選定することで初めて期待した効果を手に入れることができるのである。今回はこの点に注目し、ESP構築に際して押さえておかなければならないポイントを説明する。
運用・管理-クローリングのスケジューリングについて-クローリングとは、グループウェアやイントラネットといったストレージを巡りあらかじめ検索データを取得することである。
ESPは検索を実行する際に、クローリングによって収集されたテキスト情報、いわゆるインデックスに対して検索をするため、検索結果の正当性を保証するためにもデータ収集対象の母体である各種ストレージ(グループウェア、イントラネット、ファイルサーバなど)と検索対象であるインデックスとの間でデータの整合性を保つことが重要となる。よって頻繁にストレージに対してクローリングを実行する必要があるが、クローリングは同時にESPサーバのリソースを消費するため、検索機能自体のパフォーマンス低下を招く恐れがある。またクローリング中はストレージ自体への負荷もかかるため、対象がグループウェアやイントラネットといった業務アプリケーションの場合、その影響は多岐に渡ることになる。ではどうすればリソースの競合を避け、快適なESP環境を構築できるのであろうか?
まず1つ目の方法は、検索機能とクローリング機能を別々のサーバで分割して実装する方法である。機能別でサーバを構成するのでリソース競合の心配はないが、必然的にサーバの台数が増えてしまうので、初期導入時のコスト、運用・管理手順などを検討する必要がある。
2つ目の方法は、クローリングのスケジュールを調整することでリソースの有効活用を目指すというものだ。具体的にはクローリングのスケジュールをESPの利用頻度の低くなる営業時間外に設定し、営業時間中の検索処理とのリソース競合を避ける方法である。この方法では、営業時間中は検索処理を行い、営業時間外はクローリング、インデックス生成を行うことでサーバリソースの有効活用が可能となり、サーバの構成もシンプルにできる。ただし営業時間中はクローリングを実行できないため、ストレージとインデックスの間にデータのギャップが生じ、検索データの整合性を即時反映することが出来ないデメリットも発生する。
よって頻繁に更新されるものや重要度の高いコンテンツに関してはパターン1を、更新頻度の低いコンテンツに関してはパターン2を適用するといったように、ストレージの更新頻度に対応した柔軟なクローリングスケジュールとサーバ構成を組むことが重要となる。
ESPのセキュリティ機能として、クローリング対象のストレージに設定されているアクセス制御を引き継ぎ、検索結果に反映させる機能がある。ESPはアクセス制御情報の取得方法の違いにより大きく2つに分類できる。
まず1つ目は、検索を実行する以前にアクセス制御情報をストレージから収集し、ESPサーバ内にキャッシュしておく方法である。この方法のメリットは、検索を実行する際にサーバ内にキャッシュしているアクセス制御情報を参照するため、アクセス権つきの検索を実行する場合に、高速なレスポンスを期待できる点である。ただし、アクセス制御情報をサーバ上にキャッシュしているため、クローリング対象のストレージのアクセス制御情報が更新されたとしても、その情報を即時に反映させることは難しい。
2つ目は、検索を実行するたびにアクセス制御情報をストレージに問い合わせる方法である。この方法のメリットは、検索の都度アクセス制御情報を取得するため最新のアクセス制御情報を反映させた検索結果を得ることができる点である。ただし、検索を実行するたびにストレージに対して、アクセス制御情報を問い合わせるため、検索の処理数に比例してネットワーク上に流れるトラフィック量が増加し、ストレージへのリクエスト要求による負荷も増加することから、検索処理のレスポンスタイムが悪化する恐れがある。
よって1つ目のアクセス制御情報をキャッシュしておく方法は、全社のストレージを対象とするような比較的大規模なESP構築をする場合に、2つ目の検索処理単位に問い合わせる方法は、異動などの発令直後からアクセス権を新規に適用したい企業など、厳格なアクセス権制御を実施したい企業に適していると言える。
●サイジング-インデックスサイズの見積もり-ESPは検索を実行する際にストレージに対して検索を実行するのではなく、クローリングにより収集したインデックスに対して検索を実行することで、高速なレスポンスを実現していることは前述したとおりである。インデックスとは、各種ストレージに保存されている文書やファイルからテキスト情報を抽出し、検索処理に最適な形に整形したものであり、その容量は抽出前のファイルと比較して格段に圧縮される。部署レベルでの小規模なストレージの場合、インデックスによるサーバサイジングへの影響は無視できる程度であるが、規模が大きくなった場合、ハードディスクやメモリといったサーバのサイジングを考慮する必要がある。
インデックスへの検索処理がいかに高速であるとはいえ、インデックス自体のサイズが巨大になった場合、検索処理の劣化を引き起こす可能性がある。サーバ当たりのインデックス容量は、サーバ台数を増やしインデックスを分割して配置することで抑えることができるが、逆にインデックス分割は検索対象を分散させてしまうことになり、検索処理速度の低下を引き起こしてしまう。これらの問題を回避するためESP製品の中には、分割したインデックスに対する並列検索機能を実装しパフォーマンスを維持できる大規模ストレージ向けの製品も存在する。
上記で述べてきたように、ESPのもたらす恩恵を得るためには、構築の際には十分な検討と念入りな準備を行うことが肝要である。事前に現時点で検索対象となる社内のコンテンツの棚卸しを実行しその特徴を整備しておくとともに、将来新たに追加されるコンテンツはどのように蓄積・利用されるのかを正しく想定しておくべきである。あわせてESPのシステム基盤については、将来的な環境変化やシステム拡張に耐えられるような構成とすべきであるので、こういった構想策定については、コンテンツ・システムの両方に深い知識を持ったESPを良く知ったコンサルタントなどに相談すると良い。
みずほ情報総研 システムコンサルタント 横山大輔