仕組み全文検索の仕組みを、簡単に説明する。(SKIPでは、全文検索エンジンにHyperEstraierを用いる) バックエンドでの動き
画面での動き
0.前提以下の想定で、手順を説明する(利用環境と合わない箇所は、適時読み替えること)
1.インストールyum$ yum install hyperestraier hyperestraier-devel ruby-hyperestraier memcached xpdf wv xlhtmlgem$ gem install memcache-clientrubypureのインストールhyperestraierのバージョンを確認$ yum list hyperestraier 同じバージョンのhyperestraierを以下サイトよりダウンロード、解凍 http://hyperestraier.sourceforge.net/index.ja.html 解凍後のディレクトリをに移動して、以下のコマンドを実行 $ cd rubypure/ $ ./configure $ make $ sudo make install 2.キャッシュを生成キャッシュを生成する$ mkdir [cache_dir]$ cd [RAILS_ROOT]/lib $ ruby batch_make_cache.rb -cache_path=[cache_dir] -all SKIPにデータが存在すれば、
定期的キャッシュ生成をcronに設定# 週次の全体キャッシュ再生成20 3 * * 7 ruby [RAILS_ROOT]/lib/batch_make_cache.rb -all # 15分おきにキャッシュを生成 10,25,40,55 * * * * [RAILS_ROOT]/batch_make_cache.rb # 削除されたファイルのキャシュを削除 30 3 * * 7 ruby [RAILS_ROOT]/lib/batch_delete_cache.rb キャッシュをHTTPで配信するWebサーバ起動キャッシュは、HyperEstarierのWebクローラだけに公開する専用のWebサーバから配信する必要がある。公開状態にしていると、SNS内の非公開データも公開されてしまうためである。 設定済みのlighttpd.confを同胞しているので、そちらの利用を推奨する。 詳しくは、lighttpdの章を参照。 3.インデックスを生成インデックスを管理するノードマスタを設定する。ノードマスタのインデックスを配置する$ estmaster init [master_dir]ノードマスタを起動する$ estmaster start [master_dir]※バックグラウンドで起動する場合、 bgオプションを付ける。 インデックスを作成する$ estcall raw -auth admin admin 'http://localhost:1978/master?action=nodeadd&name=node1&label=NODE01'結果に"OK"と表示されることを確認する。 ※上記の例では、インストール直後のデフォルト(例:user:admin, password:admin)を利用している。 必要に応じて、 適切なユーザとパスワードを設定すること。 4.クローラを動かすノードマスタにキャッシュを検索して、インデックスに登録していくクローラの設定をする。クロールする設定を行う$ estwaver init [crawl_dir][crawl_dir]/_confを編集する キャッシュのURLを指定する seed: 1.0|http://localhost:3000/cache/ ※付属のlighttpd.confを利用した場合 上記のように設定する 許可するURLを指定する allowrx: ^http://localhost:3000/cache/ ※付属のlighttpd.confを利用した場合 上記のように設定する 拒否するURLから pdf,doc,xls,pptを取り除く denyrx: \.(rtf|pdf|ps|eps|ai|doc|xls|ppt|sxw|sxc|sxi|xdw|jtd|oas|swf)$ ↓ ↓ denyrx: \.(rtf|ps|eps|ai|sxw|sxc|sxi|xdw|jtd|oas|swf)$ インデックに登録しないURLを指定する(ディレクトリはインデックスに登録しない) noidxrx: cache/.*/$ PDF, officeの変換ツールの設定を入れる typerule: ^application/pdf${{!}}H@[install_dir]/filter/estfxpdftohtml typerule: ^(application/msword|application/vnd.ms-(excel|powerpoint))${{!}}H@[install_dir]/filter/estfxmsotohtml 言語を日本語に設定する language: 1 revisit: で再度URLを訪れるまでの期間を1日に設定する revisit: 1d nodeserv: で登録するノードサーバを設定する nodeserv: 1|http://admin:admin@localhost:1978/node/node1 定期クロールをcronに設定35 * * * * estwaver crawl -revcont [crawl_dir]5.SKIP設定の変更全文検索機能は、デフォルトではオフなので、以下を設定する。全文検索機能を有効にする(画面右上の検索窓を表示する)[RAILS_ROOT]/config/environment.rbFULL_TEXT_SEARCH_SETTING = true メタ情報を用いる[RAILS_ROOT]/config/searchapps.yml以下の箇所を変更する。 production: skip: cache: localhost:3000/cache # 付属のlighttpd.confを利用した場合 上記のように設定する meta: [cache_dir]_meta condition_js: http://[SKIP_URL]/services/search_conditions.js title: SKIP order: 1 |


