インデックス構築

トップ  前へ  次へ

 

【このページの主な項目】

検索インデックス・プレビューの初期構築
初回インデックス構築状況の確認
ファイル変更監視の再開
インデックス再構築(2回目)の実行

 

検索インデックス・プレビューの初期構築

導入当初、まず全文書を検索エンジンに登録し、全文書のプレビュー画像を作成する必要があります。

この検索インデックスおよびプレビューの初期構築には、文書量やサーバ性能にもよりますが長時間を要することがあります。

できるだけ短時間に初期構築を終わらせるために、インデックスの初期構築期間をスケジュールし、その期間はユーザにFileBlogシステムの利用を公開せず、通常運用時と異なるシステム設定を行って、検索サーバを初期構築に専念させてください。

 

ファイル変更監視を一時停止

FileBlogは、ドキュメントルートフォルダの変更をリアルタイムで監視し、変更を検知すると検索インデックスを更新します。

一般に、FileBlogのインデックス初期構築期間中も、ユーザはファイルサーバを利用すると考えられ、ファイルの変更が頻繁に行われる可能性があります。

FileBlogは通常運用時は、検出された変更内容の処理を最優先で行うため、インデックスの初期構築・プレビューの初期作成が滞る恐れがあります。

 

ユーザによるファイル変更が頻繁に発生する環境でのインデックス初期構築の場合には、下記手順でファイル変更監視を一時停止することで、処理時間の短縮が可能になります。(必須ではありません)

ApacheサービスおよびFb3Indexerサービスが稼動しているものとします。
FileBlogにブラウザからログインして、「システム設定」のメンテナンス操作「コマンド実行」をクリックしてください。
コマンド欄に「stopdirmonitor」と入力し、引数は空欄のまま「実行」ボタンを押してください。これにより、ファイル変更検知が停止します。
「システム設定」「インデックス構築状況」で「オンライン処理(検索インデックス)」の件数が増えず、「すべての処理が完了しています」となるか、減り続けていくことを確認してください。
数百人がログインするファイルサーバでは、オンライン監視をONにすると、絶えず新しいファイルが検出され、「オンライン処理(検索インデックス)」の件数は増えたり減ったりするのが普通です。

 

インデックス構築(初回)の実行

FileBlogにログインして、「システム設定」のメンテナンス操作「インデックスの再構築」をクリックしてください。
すべてのドキュメントルートを対象に、インデックス再構築を行います。

 「検索インデックス再構築」「プレビュー抽出を行う」の両方をチェックしてください。

また、導入後最初のインデックス構築では、「登録済チェックをスキップする」もチェックしてください。2回目以降のインデック構築では、各ファイルが検索エンジンに登録済かどうかをチェックし、未登録ファイルのみを登録するのですが、初回は全てのファイルが未登録であることが確実であるため、登録済チェックを省略することで構築速度が向上します。

実行を押すと、インデックス構築が始まります。

 

初回インデックス構築状況の確認

初回インデックス構築は長時間を要し、下記のように進行していきます。

「システム設定」から稼動状況の確認の「インデックス構築状況」で状況を確認できます。

 

フォルダスキャン

最初は、バッチ処理の先頭に 下記のように表示されます。

bt_scanfile  2009/04/27 21:39:32
bt_putdoc  2009/04/27 21:39:32
bt_tpi  2009/04/27 21:39:32

これは、先頭のbt_scanfileジョブが現在実行中で、その後続にbt_putdoc, bt_tpiのジョブが順番待ちをしているという意味です。

 

bt_scanfileは、ドキュメントルート以下の全ファイルをスキャンして、ファイル一覧を作成するジョブです。このジョブは、ハードディスクを単純にスキャンするだけなので、かなり高速です。
先頭ジョブが青色のリンクになっている場合は、クリックすることで、そのジョブのログファイルを確認できます。たとえば、bt_scanfileのログは下記のようになります。

INFO    2009/04/27 21:39:33    START crawling: c:\share

INFO    2009/04/27 21:39:33   当初10000件までは1000件毎に報告します

INFO    2009/04/27 21:39:34    1000: scan .

DONE    2009/04/27 21:39:35    1584 nodes, 1490 files in 94 folders scanned

 

検索インデックス構築

bt_scanfileが終わると、検索インデックス構築ジョブbt_putdocがスタートします。このジョブは、各ファイルを読み取ってテキストを抽出し、抽出したテキストを検索エンジンに登録する処理です。

ファイル数が10万件以上ある場合には、数時間~数十時間を要することがあります。

パフォーマンス・チューニング・パラメータが適切に設定されていれば、複数スレッド同時並列処理によって、CPU時間をほぼ100%使い切る状態になると予想されます。

bt_putdocのログの進行は下記のようになります。

INFO    2009/04/27 21:39:35    START ESTPUT @0: from [J010_FILLST_00_000.txt]

INFO  2009/04/27 21:39:35   当初10000件までは100件毎に報告します

INFO  2009/04/27 21:41:41    ESTPUT Done

INFO  2009/04/27 21:41:41    all 1 subthreads done

DONE 2009/04/27 21:41:41    NORMAL TERMINATION: 1584  docs registered

 

先ほどの bt_scanfile のログから総件数がわかるため、おおよその所要時間が計算できるかと思います。

 

検索可能件数が増えない?

処理が始まっているのに、検索可能件数はなかなか増えないように見えます。

これは、検索エンジンが変更をメモリにキャッシュしていて、ディスクへの書き込みは5分に1回程度のタイミングで遅延して行われるためで、心配ありません。

 

待ちきれない場合は?

bt_putdocのジョブの実行途中でも、Fb3Indexerを停止することが出来ます。Fb3Indexerを再び起動すると、bt_putdocジョブは先頭ファイルからもう一度全ファイル分を処理します。

中断した地点から再開というわけには行きませんが、そこまではテキスト抽出済で、かつ検索エンジン登録済ですので、かなり高速にもとの地点もで進みます。

パフォーマンス・チューニング・パラメータを変更しなおしてから、再実行するということがあるでしょう。

 

サーバのコンソールがフリーズして困ったら

インデックスの初期構築は、大変負荷の重い処理です。そのため、検索サーバが「バックグラウンドタスク優先」に構成された環境だと、インデックス構築処理によってCPUが100%近く占有された場合に、マウスカーソルが動かなくなったり、キーボード入力が受け付けられなくなったりすることがあります。このような症状を予防するために、以下を心がけてください。

 

FileBlogにログインするためのWebブラウザは、サーバマシンとは別の端末PCから行う方が安全です。
サーバのコンソール上では、なるべく無駄にアプリケーションを起動しないようにしてください。

 

万が一、コンソールが入力を受付けなくなった場合には、リモートマシンからサーバ上で稼動する Fb3Indexerサービスを停止することで、サーバを落ち着かせることができます。

コマンドプロンプトから下記のコマンドをご利用下さい。

sc \\ServerName stop Fb3Indexer

 

上記の「sc」コマンドで、サーバ「ServerName」上のFb3Indexerサービスに停止要求を投げることができます。ServerNameの部分は実際のコンピュータ名に合わせてください。

停止要求が受付けられたかどうかは下記コマンドで確認できます。

sc \\ServerName query Fb3Indexer

 

STATUS: RUNNINGならば、停止要求を未だ受付けていません。STOP_PENDINGならば、停止中。STOPPEDは停止状態です。

 

プレビュー作成

bt_putdoc のインデックス構築ジョブが終了すると、プレビュー作成が始まります。 bt_tpi ジョブは、あっという間に終わりますが、インデックス構築状況を見ると、「オンライン処理(プレビュー抽出)」に大量の処理が投入されます。この「オンライン処理(プレビュー抽出)」の残りがゼロになるまで、プレビューの初期作成が続きます。大変負荷の大きな処理ですので、時間がかかります。

 

ファイル変更監視の再開

プレビュー作成まで完了したら、ファイルのリアルタイム変更監視を再開します。

FileBlogにブラウザからログインして、「システム設定」からメンテナンス操作の「コマンド実行」をクリックしてください。
コマンド欄に「startdirmonitor」と入力し、引数は空欄のまま「実行」ボタンを押してください。これにより、ファイル変更検知が再開されます。
「システム設定」「インデックス構築状況」で「オンライン処理(検索インデックス)」の件数が増えず、「すべての処理が完了しています」となるか、増えるのを確認してください。

※数百ユーザがログインするファイルサーバでは、かなり頻繁にファイルが更新されるので、しばらく眺めていると検知がなされます。ただし、ファイルサーバにアクセスするユーザが居ない場合には、増えません。

 

インデックス再構築(2回目)の実行

ファイル変更監視を再開後、もう一度インデックス再構築を実行します。

これにより、最初のインデックス初期構築期間中にユーザが変更したファイルを含めた、完全な検索インデックスを構築することが出来ます。

再構築の操作は初回と同様です。

FileBlogにログインして、「システム設定」からメンテナンス操作の「インデックス再構築」をクリックしてください。
すべてのドキュメントルートを対象に、インデックス再構築を行います。
「検索インデックス再構築」「プレビュー抽出を行う」の両方をチェックしてください。
「登録済チェックをスキップする」は今度はチェックしないでください。初回のインデックス構築時に登録済のファイルについては、更新をしないようにします。
実行を押すと、インデックス構築が始まります。

 

ほとんどのファイルが既に登録済のため、初回構築よりも早く処理が終わるはずです。

 


Copyright © 2014 Teppi Technology Co. Ltd. All rights reserved.