#contents http://www.crimson-snow.net/hmsvr/bsd/memo/estraier.html 全文検索システム「Estraier」の導入 全文検索システムとしては「Namazu」が有名であるが、その他にもいくつかあり、ここでは「Namazu」にも劣らない「Estraier」を導入する。 また、分かち書きには「ChaSen」を利用する。 ここでは /usr/local/www/apache22/data/ 以下のすべてを検索対象ディレクトリとし、転置インデックスを /usr/local/www/apache22/data/estraier/ に作成するものとする。 なお、「Apache」の設定は完了済みとする。#contents http://www.crimson-snow.net/hmsvr/bsd/memo/estraier.html 全文検索システム「Estraier」の導入 全文検索システムとしては「Namazu」が有名であるが、その他にもいくつかあり、ここでは「Namazu」にも劣らない「Estraier」を導入する。 また、分かち書きには「ChaSen」を利用する。 ここでは /usr/local/www/apache22/data/ 以下のすべてを検索対象ディレクトリとし、転置インデックスを /usr/local/www/apache22/data/estraier/ に作成するものとする。 なお、「Apache」の設定は完了済みとする。 *「Estraier」のインストール [#me8c2114] **「ChaSen」のインストール [#l4945ca6] まず分かち書きに利用する「ChaSen」をインストールする。 piano:root {97} % portinstall japanese/chasen **「Estraier」のインストール [#v23bc220] piano:root {86} % portinstall textproc/estraier 以下をチェックする [X] CHASEN Japanese Morphological Analysis Support **「Estraier」の実行 [#bfd9a952] 転置インデックス格納先ディレクトリの作成 FreeBSD# mkdir /usr/local/www/apache22/data/estraier **「Estraier」の新規実行 [#o532a67d] 「Estraier」を新規に実行する場合は以下のようにする。 FreeBSD# estindex register /usr/local/www/apache22/data/estraier/est_index /usr/local/www/apache22/data <= 転置インデックスの作成 piano:root {87} % estindex register /usr/local/www/apache22/data/estraier/est_index /usr/local/www/apache22/data FreeBSD# estindex relate /usr/local/www/apache22/data/estraier/est_index <= 転置インデックスに関連文書検索用のスコア情報を追加 **「Estraier」の実行 [#b4fb732b] ページに更新があった後、「Estraier」を実行する場合は以下のようにする。 FreeBSD# estindex purge /usr/local/www/apache22/data/estraier/est_index <= サイトから削除された文書を転置インデックスからも削除 FreeBSD# estindex register /usr/local/www/apache22/data/estraier/est_index /usr/local/www/data <= 転置インデックスの作成 FreeBSD# estindex optimize /usr/local/www/apache22/data/estraier/est_index <= 転置インデックスの更新で生じた不要な情報を削除 FreeBSD# estindex relate /usr/local/www/apache22/data/estraier/est_index <= 転置インデックスに関連文書検索用のスコア情報を追加 **「Estraier」の設置 [#xcf49917] 設定ファイル等格納先ディレクトリの作成 FreeBSD# mkdir /usr/local/www/apache22/cgi-bin/estraier **各種ファイルのコピー [#h833a0fa] FreeBSD# cp /usr/local/libexec/estsearch.cgi /usr/local/www/apache22/cgi-bin/estraier/ FreeBSD# cp /usr/local/share/estraier/locale/ja/estsearch.conf /usr/local/www/apache22/cgi-bin/estraier/ FreeBSD# cp /usr/local/share/estraier/locale/ja/estsearch.tmpl /usr/local/www/apache22/cgi-bin/estraier/ FreeBSD# cp /usr/local/share/estraier/locale/ja/estsearch.top /usr/local/www/apache22/cgi-bin/estraier/ **「Estraier」の設定 [#xaf6cf81] FreeBSD# vi /usr/local/www/apache22/cgi-bin/estraier/estsearch.conf <= 設定ファイルの編集 indexname: casket ↓ indexname: /usr/local/www/apache22/data/estraier/est_index <= 転置インデックスを指定 prefix: ./ ↓ #prefix: ./ <= コメントアウト replace: ↓ replace: /usr/local/www/apache22/data/ http://piano.smb.net/ replace: /usr/local/www/apache22/data/ http://www.est_index.net/ <= 検索対象ディレクトリの置換 ブラウザで http://piano.smb.net/cgi-bin/estraier/estsearch.cgi とアクセスする。 **サイト内に設置する場合 [#le23b68d] サイト内に検索用のFORMを設置する場合、設置したい場所に以下の内容を記述。 <FORM method="get" action="/cgi-bin/estraier/estsearch.cgi"> <DIV> <INPUT type="text" name="phrase" value="" size="64" tabindex="1" /> <INPUT type="submit" value="Search" tabindex="2" /> <INPUT type="hidden" name="enc" value="EUC-JP" /> </DIV> </FORM> 転置インデックスの自動作成&不要データ削除 FreeBSD# vi /root/estraier.sh <= 転置インデックスの自動作成&不要データ削除スクリプト作成 #!/bin/sh ESTINDEX='/usr/local/bin/estindex' $ESTINDEX purge /usr/local/www/apache22/data/estraier/est_index > /dev/null 2>&1 $ESTINDEX register /usr/local/www/apache22/data/estraier/est_index /usr/local/www/data /dev/null 2>&1 $ESTINDEX optimize /usr/local/www/apache22/data/estraier/est_index > /dev/null 2>&1 $ESTINDEX relate /usr/local/www/apache22/data/estraier/est_index > /dev/null 2>&1 **スクリプトの自動実行 [#l7c6a82f] FreeBSD# vi /etc/crontab <= cronの編集 00 03 * * * root /root/estraier.sh <= 追加(毎日3:00にスクリプト実行) ---- *「Estraier」のインストール [#me8c2114] **「ChaSen」のインストール [#l4945ca6] まず分かち書きに利用する「ChaSen」をインストールする。 piano:root {97} % portinstall japanese/chasen **「Estraier」のインストール [#v23bc220] piano:root {86} % portinstall textproc/estraier 以下をチェックする [X] CHASEN Japanese Morphological Analysis Support **「Estraier」の実行 [#bfd9a952] 転置インデックス格納先ディレクトリの作成 FreeBSD# mkdir /usr/local/www/apache22/data/estraier **「Estraier」の新規実行 [#o532a67d] 「Estraier」を新規に実行する場合は以下のようにする。 FreeBSD# estindex register /usr/local/www/apache22/data/estraier/est_index /usr/local/www/data <= 転置インデックスの作成 piano:root {87} % estindex register /usr/local/www/apache22/data/estraier/est_index /usr/local/www/data FreeBSD# estindex relate /usr/local/www/apache22/data/estraier/est_index <= 転置インデックスに関連文書検索用のスコア情報を追加 **「Estraier」の実行 [#b4fb732b] ページに更新があった後、「Estraier」を実行する場合は以下のようにする。 FreeBSD# estindex purge /usr/local/www/apache22/data/estraier/est_index <= サイトから削除された文書を転置インデックスからも削除 FreeBSD# estindex register /usr/local/www/apache22/data/estraier/est_index /usr/local/www/data <= 転置インデックスの作成 FreeBSD# estindex optimize /usr/local/www/apache22/data/estraier/est_index <= 転置インデックスの更新で生じた不要な情報を削除 FreeBSD# estindex relate /usr/local/www/apache22/data/estraier/est_index <= 転置インデックスに関連文書検索用のスコア情報を追加 **「Estraier」の設置 [#xcf49917] 設定ファイル等格納先ディレクトリの作成 FreeBSD# mkdir /usr/local/www/apache22/cgi-bin/estraier **各種ファイルのコピー [#h833a0fa] FreeBSD# cp /usr/local/libexec/estsearch.cgi /usr/local/www/apache22/cgi-bin/estraier/ FreeBSD# cp /usr/local/share/estraier/locale/ja/estsearch.conf /usr/local/www/apache22/cgi-bin/estraier/ FreeBSD# cp /usr/local/share/estraier/locale/ja/estsearch.tmpl /usr/local/www/apache22/cgi-bin/estraier/ FreeBSD# cp /usr/local/share/estraier/locale/ja/estsearch.top /usr/local/www/apache22/cgi-bin/estraier/ **「Estraier」の設定 [#xaf6cf81] FreeBSD# vi /usr/local/www/apache22/cgi-bin/estraier/estsearch.conf <= 設定ファイルの編集 indexname: casket ↓ indexname: /usr/local/www/apache22/data/estraier/est_index <= 転置インデックスを指定 prefix: ./ ↓ #prefix: ./ <= コメントアウト replace: ↓ replace: /usr/local/www/apache22/data/ http://piano.smb.net/ replace: /usr/local/www/apache22/data/ http://www.est_index.net/ <= 検索対象ディレクトリの置換 ブラウザで http://piano.smb.net/cgi-bin/estraier/estsearch.cgi とアクセスする。 **サイト内に設置する場合 [#le23b68d] サイト内に検索用のFORMを設置する場合、設置したい場所に以下の内容を記述。 <FORM method="get" action="/cgi-bin/estraier/estsearch.cgi"> <DIV> <INPUT type="text" name="phrase" value="" size="64" tabindex="1" /> <INPUT type="submit" value="Search" tabindex="2" /> <INPUT type="hidden" name="enc" value="EUC-JP" /> </DIV> </FORM> 転置インデックスの自動作成&不要データ削除 FreeBSD# vi /root/estraier.sh <= 転置インデックスの自動作成&不要データ削除スクリプト作成 #!/bin/sh ESTINDEX='/usr/local/bin/estindex' $ESTINDEX purge /usr/local/www/apache22/data/estraier/est_index > /dev/null 2>&1 $ESTINDEX register /usr/local/www/apache22/data/estraier/est_index /usr/local/www/data /dev/null 2>&1 $ESTINDEX optimize /usr/local/www/apache22/data/estraier/est_index > /dev/null 2>&1 $ESTINDEX relate /usr/local/www/apache22/data/estraier/est_index > /dev/null 2>&1 **スクリプトの自動実行 [#l7c6a82f] FreeBSD# vi /etc/crontab <= cronの編集 00 03 * * * root /root/estraier.sh <= 追加(毎日3:00にスクリプト実行) ----