大きなサイズのPDFファイルが検索で見つからない!

株式会社PFU 千葉辰典


SharePointの検索機能はツカエナイ、と嘆く声をよく耳にします。

現に、標準の検索機能を使ってドキュメントライブラリに登録されているOfficeデータやPDFファイルなどを探そうとしても、欲しいモノが見つからない・・・と言うことは、実際に多々直面します。

 

SharePointを企業/団体内で「文書管理システム」と位置付けて利用しているユーザーは、多くはないにしても、少なくはないはずです。そんな中で、必要なモノが必要な時に得られないのでは、機会損失や作業効率低下はもちろん、SharePoint=ツカエナイと言うマイナスイメージまで生んでしまう危険性があります。

 

今回は、弊社(株式会社PFU)で全社文書管理システムを運営している中で発生したトラブル事例 『大きなサイズのPDFファイルが検索で見つからない!』 について、原因と対策を述べたいと思います。冒頭のようなマイナスイメージを払拭する一助になれば幸いです。

 

-----

 

弊社ではSharePointを全社ポータル用途以外に、"全社で共有すべき文書"や"部門内に限定して共有する文書"を管理する目的で活用しています。

管理対象は、製品マニュアルや拡販資料、他社との取引文書、事業計画や通達など、どの企業でも取り扱っているような文書が挙げられます。その中には、スキャナ(こんなのこんなの)を用いて紙文書を電子化したものも含まれますが、分厚い冊子をPDFにすると、それなりにファイルサイズも大きくなってしまいます。

 

「登録されているはずの、PDFファイルが検索で見つからないんだけど…」と言うクレームが飛び込んできたのも、調べてみると、上述のようなスキャナで電子化した大きなサイズのPDFファイルでした。

 

[サーバーの全体管理]>[サービス アプリケーションの管理]>[検索サービスアプリケーション名]>[クロール ログ]を確認すると、『コンテンツの解析がタイムアウトしたため、このアイテムを処理できませんでした。』と言うエラーが見つかります。

tips1_1.png 

 

-----

 

さて、ここからはトラブルシュートです。

なお、以降の検証はあくまでも弊社内テスト環境(*)での実施結果であり、必ずしも他の環境で同じ結果が得られることを保証するものではありません。結果はサーバーのスペックにも大きく依存しますので、本稿に記した設定の変更を検討される場合には、事前に十分な検証を行ってください。
(*)テスト環境 ※いずれも仮想環境です。

役割 台数 スペック
WFE/AP 1

Windows Server 2012SharePoint 2013 (15.0.4675.1000)

プロセッサ:Intel Xeon CPU E5530 2.4GHz、実装メモリ:30GB

DB

1

 

Windows Server 2012SQL Server 2012

プロセッサ:Intel Xeon CPU E5530 2.4GHz、実装メモリ:30GB

 

今回のTips寄稿にあたり、いくつかのテストデータを用意して状況を再現してみました。確認したのは以下の7ファイルです。

ファイル名 ページ数 文字数 ファイルサイズ
テスト文書_0.pdf 12 6,800 379.47KB
テスト文書_1.pdf 635 425,059 5.98MB
テスト文書_2.pdf 1,267 850,110 9.77MB
テスト文書_3.pdf 1,899 1,275,161 13.57MB
テスト文書_4.pdf 2,531 1,700,212 17.37MB
テスト文書_5.pdf 3,163 2,125,263 21.06MB
テスト文書_6.pdf 3,795 2,550,314 24.97MB

 

-----

 

1)ファームの検索管理でタイムアウト時間を変更してみる

トラブル発生当初、まず、ファイルサイズが大きいことで接続および要求確認に時間を要している可能性を疑い、簡単に変更できるタイムアウト値を変更してみました。

[サーバーの全体管理]の検索サービスアプリケーションから[ファームの検索管理]にアクセスすると、ファームレベルでのタイムアウト時間を変更できる箇所が見つかります。「クロール中のコンテンツソースに接続している間、検索サーバーが待機する時間を入力してください。」と説明があり、接続時間/要求確認にかかった時間のそれぞれ、60秒が既定値として設定されています。

tips1_2.png 

 

それぞれの値を600秒(10分)などに変更してみましたが、結果は変わらず NG でした。いくら設定値を大きくしても、30秒ほどで打ち切られてしまいます。

この設定は、TechNet記事「ファームレベル検索の設定を管理する (Office SharePoint Server)」にも記載ある通り、コンテンツソースで指定したクロール先のサーバーに接続する際のタイムアウト値であり、1アイテムあたりのインデックスに掛ける時間ではありません。

 

-----

 

2)ソフトウェアの境界と制限を変更確認してみる

次に、TechNet記事「ソフトウェアの境界と制限 (SharePoint 2013)」の[機能別の制限]>[検索の制限]>[検索:アイテム サイズの制限]を確認してみました。期待する検索結果が得られない可能性として、以下2点が挙げられているので引用します。

  • アイテムを検索しても結果が得られなかった場合は、そのアイテムが大きすぎる可能性があります。ファイルがクローラーでダウンロード可能な最大サイズを超えていることを示す警告がクロールログに書き込まれます。
  • アイテム内のテキストを検索して、そのテキストの最初の部分の結果しか得られなかった場合は、アイテムがそのサイズ制限の一部を超えており、コンテンツ処理コンポーネントによって切り捨てられた可能性があります。(中略)。アイテムが切り捨てられた理由は、クロールログの警告にも示されます。

 

各制限の詳細を見ていくと、それぞれに"しきい値"や"境界"があることが分かります。なお、"しきい値"は超過および変更可能な値、"境界"は超過および変更不可な固定値です。
※以下は一部抜粋です。詳細はTechNet記事を参照してください。

クロールコンポーネントでダウンロード可能なドキュメントサイズ しきい値

・Excel:3MB

・その他:64MB

解析されるコンテンツサイズ 境界

・200万文字/アイテム

・解析に最大で30秒しか使われない

ワードブレイカ―によって生成されるトークン数 境界

・30,000個/アイテム

・単語分割に最大で30秒しか使われない

 

テスト用データの7ファイルは、いずれも64MB以下なので範囲内ですが、試しにダウンロード可能なドキュメントサイズを既定の64MBから5MB/10MB/20MB/30MBに変更して、それぞれクロール結果を比較してみました。

ファイル名 ファイルサイズ 既定(64MB) 5MB 10MB 20MB 30MB
テスト文書_0.pdf 379.47KB 成功 成功 成功 成功 成功
テスト文書_1.pdf 5.98MB 成功 警告(*2) 成功 成功 成功
テスト文書_2.pdf 9.77MB 警告(*1) 警告(*2) 警告(*1) 警告(*1) 警告(*1)
テスト文書_3.pdf 13.57MB 警告(*1) 警告(*2) 警告(*2) 警告(*1) 警告(*1)
テスト文書_4.pdf 17.37MB エラー(*3) 警告(*2) 警告(*2) エラー(*3) エラー(*3)
テスト文書_5.pdf 21.06MB エラー(*3) 警告(*2) 警告(*2) 警告(*2) エラー(*3)
テスト文書_6.pdf 24.97MB エラー(*3) 警告(*2) 警告(*2) 警告(*2) エラー(*3)

 

■警告/エラーの内容

(*1) このアイテムは最大サイズを超えたため、インデックスに入りきらなかった部分が切り捨てられました。

(*2) ファイルがダウンロードの制限に達しました。ドキュメントのテキスト全体を有効にクロールできるかどうかを確認してください。

(*3) コンテンツの解析がタイムアウトしたため、このアイテムを処理できませんでした。

 

制限項の記載どおり、『解析が30秒以内に終わらなかった』ものがエラーとなりました。この時間(30秒)は"境界"のため、変更ができない固定値とのことです。

 

-----

 

まとめです。

ある文書のクロール結果が"警告"の場合、制限を超過した部分が切り捨てられるだけで、工夫をすれば検索機能で見つけることが可能です。しかし、"エラー"となると検索機能では見つけることができません。

 

検証結果では、ダウンロード可能なサイズを小さくすることで、"エラー"となっていたファイルが"警告"となり、検索できるようになりました。まったく検索されないより、(期待した検索条件で見つかる保証はないが)何らかの条件で検索できることを優先して、既定値を変更するのは一つの解決策だと思います。

 

しかし、実際には多種多様なサイズ、文字数のファイルが登録されているため、適正値を見極めるのは極めて難しいことだと思います。

ではどうするか・・・?

 

SharePoint有識者含めた協議の結果、根本的な解決策は『巨大なファイルは登録しない』『登録前に細かく分割する』しかない、と言う結論に至りました。結果、弊社ではダウンロード可能なドキュメントサイズの変更は行わず、運用回避(*)を採択しました。
(*)ルールの周知、クロールエラーとなったファイルの通知、大きなファイルが登録されていないか定期監査…など。

 

 

最後に・・・明快な解決策に至らず不本意なTipsになってしまいましたが、SharePointで文書管理システムを運用する上では、このような解決困難な仕様と向き合い、時には手間と運用で回避していくしかないと言うことを痛感した事例でした。

 

弊社では、自社で培ったSharePoint&文書管理のノウハウと、SharePoint向けアドオンソリューション「ドキュメントソリューション for SharePoint」で、紙文書・電子データの積極的活用を実現するお手伝いをしています。ご興味のある方は、こちらからお問い合わせ下さい。

 

株式会社PFU)千葉辰典

© PFU LIMITED 2015

 

Microsoft、Windows、SharePoint、Excel、Word、PowerPoint、Outlookは、米国Microsoft Corporationの、米国、日本およびその他の国における登録商標または商標です。

Intel、Xeonは、米国およびその他の国におけるIntel Corporation の商標です。

本稿内のスクリーンショットは、マイクロソフトの著作物の使用に関するガイドラインに則って使用しています。