unshiuでは全文検索エンジンとして Hyper Estraier を採用しています。以下Hyper Estraierに関する詳細と利用状況をまとめます。 概要
利用上の注意Hyper Estraierは仕組み上、インデックスをDBとは別に作成し、高速な検索を可能にしています。よってHyper Estraierのインデックス容量を想定しておく必要があります。また1台で処理できる(パフォーマンスの面で)インデックスの最大サイズは約300GB程度であり、それ以上のサイズになった場合は複数台でクラスタリングさせ内部でP2P方式でデータを交換する方式が用意されています。この場合、処理可能なデータ数は増えますが、内部のネットワーク負荷が増大することを想定してください。インストールWindowshttp://hyperestraier.sourceforge.net/win/最新をダウンロードし、展開してそのディレクトリにPATHを通します。 Linux関連ライブラリをインストールlibiconv インストール$ cd /usr/local/src/zlib インストール$ wget http://www.zlib.net/zlib-1.2.3.tar.gzqdbm インストール$ wget http://qdbm.sourceforge.net/qdbm-1.8.77.tar.gz環境によっては make check 時に以下のようなエラーがでます。この場合、インストールは成功したようにみえますが、Hyper Estraierをインストールし、起動しようとしてもエラーがでて終了してしまいます。 $ make check[原因と対処方法]/usr/libに古いバージョンのlibqdbmが入っていると発生します。削除してmake install してください。 Hyper Estraier インストール$ wget http://hyperestraier.sourceforge.net/hyperestraier-1.4.13.tar.gzMacportを利用している前提です。$ sudo port install hyperestraier初期化estmaster init casketcasket という名前でディレクトリがカレントに作られます。 casket という名前はアルファベットであれば特に制限はありません。 キャッシュ反映時間を設定テスト用に作成した場合のみキャッシュによるテスト失敗を防ぐために以下の設定をしてください。cd casketこれによりキャッシュの反映時間が0になります。なお本番サーバではパフォーマンスを考慮しこの設定のでの運用はしないでください。 サーバー起動 $ estmaster start casket以下のように-bgをstartの次につけるとバックグランドで立ちあがります。 マスタ管理以下のURLへアクセスしてください。管理用のIDとパスワードをきかれるので admin/admin (デフォルト)でログインできます。 http://localhost:1978/master_uiノード作成Manage Nodes を選択し、フォームに以下を順に入力して「create」を押してノードを作成します。「nodename」「ノード説明」nodename はあとで Rails から指定する名前です。 実行環境毎に作るのでローカルならとりあえず「development」「test」あたりを作っておきましょう。 ユーザー作成ローカル環境ならスキップしても問題ありません。ただし本番環境ではセキュリティを考慮し必ず admin ユーザを消して別の名前で作成しましょう。 Manage Users を選択し、フォームに以下を順に入力して「create」を押してノードを作成します。 3つめの「s」は管理者を意味するようです。 「username」「password」「s」サーバー終了方法$ estmaster stop casketkillやサーバダウンなどでstop処理以外で終了された場合、以下のファイルを消さないと起動しません。 またこれを消して起動しても、インデックスが壊れている場合は正常に検索することはできません。 casket/_pidインデックスの作成インデックスが壊れたり、一度導入した後に利用を考える場合にはDB情報を元にインデックスの再作成が別途必要になります。方法 ruby script/consoleインデックスされたデータをけしたのにインデックスの反映が行われていない場合は一旦クリアしてから再構成する必要があります。 ruby script/console注意点 インデックスの作成はCPUのリソースを大量に使い、かつデータ量に応じて作成時間がかかります。 利用する上での考慮点全文検索対象とすることで以下の点を考慮してください。
unshiuでの利用以下の点を全文検索対象としています。
|