全文検索システム「Estraier」の導入

全文検索システムとしては「Namazu」が有名であるが、その他にもいくつかあり、 ここでは「Namazu」にも劣らない「Estraier」を導入する。
また、分かち書きには「ChaSen」を利用する。
ここでは
/var/www/localhost/htdocs/
以下のすべてを検索対象ディレクトリとし、転置インデックスを
/var/www/localhost/estraier/
に作成するものとする。
なお、「Apache」の設定は完了済みとする。

「Estraier」のインストール

「Estraier」のインストール

Gentoo ~ # USE="+chasen" emerge estraier
「Estraier」の実行

転置インデックス格納先ディレクトリの作成

Gentoo ~ # mkdir /var/www/localhost/estraier

「Estraier」の新規実行

「Estraier」を新規に実行する場合は以下のようにする。

Gentoo ~ # estindex register /var/www/localhost/estraier/crimson-snow /var/www/localhost/htdocs <= 転置インデックスの作成
Gentoo ~ # estindex relate /var/www/localhost/estraier/crimson-snow <= 転置インデックスに関連文書検索用のスコア情報を追加

なお、「SquirrelMail」を導入している場合、そのディレクトリを対象外とするよう、上記の register の部分を以下のように変更する。

Gentoo ~ # find /var/www/localhost/htdocs -type f -not -path '*/squirrelmail/*' | \
estindex register -list - /var/www/localhost/estraier/crimson-snow <= 転置インデックスの作成

「SquirrelMail」を導入している場合、以下も同様に実行時の register の部分を読み替える。

「Estraier」の実行

ページに更新があった後、「Estraier」を実行する場合は以下のようにする。

Gentoo ~ # estindex purge /var/www/localhost/estraier/crimson-snow <= サイトから削除された文書を転置インデックスからも削除
Gentoo ~ # estindex register /var/www/localhost/estraier/crimson-snow /var/www/localhost/htdocs <= 転置インデックスの作成
Gentoo ~ # estindex optimize /var/www/localhost/estraier/crimson-snow <= 転置インデックスの更新で生じた不要な情報を削除
Gentoo ~ # estindex relate /var/www/localhost/estraier/crimson-snow <= 転置インデックスに関連文書検索用のスコア情報を追加
「Estraier」の設置

設定ファイル等格納先ディレクトリの作成

Gentoo ~ # mkdir /var/www/localhost/cgi-bin/estraier

各種ファイルのコピー

Gentoo ~ # cp /usr/libexec/estsearch.cgi /var/www/localhost/cgi-bin/estraier/estsearch.cgi
Gentoo ~ # cp /usr/share/estraier/locale/ja/estsearch.conf /var/www/localhost/cgi-bin/estraier/estsearch.conf
Gentoo ~ # cp /usr/share/estraier/locale/ja/estsearch.tmpl /var/www/localhost/cgi-bin/estraier/estsearch.tmpl
Gentoo ~ # cp /usr/share/estraier/locale/ja/estsearch.top /var/www/localhost/cgi-bin/estraier/estsearch.top

「Estraier」の設定

Gentoo ~ # vi /var/www/localhost/cgi-bin/estraier/estsearch.conf <= 設定ファイルの編集
indexname: casket
↓
indexname: /var/www/localhost/estraier/crimson-snow <= 転置インデックスを指定

prefix: ./
↓
#prefix: ./ <= コメントアウト

replace:
↓
replace: /var/www/localhost/htdocs/ http://www.crimson-snow.net/ <= 検索対象ディレクトリの置換

ブラウザで
http://サーバのIPアドレス/cgi-bin/estraier/estsearch.cgi
とアクセスする。

サイト内に設置する場合

サイト内に検索用の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="UTF-8" />
  </DIV>
</FORM>
転置インデックスの自動作成&不要データ削除
Gentoo ~ # vi /root/estraier.sh <= 転置インデックスの自動作成&不要データ削除スクリプト作成
#!/bin/sh

ESTINDEX='/usr/bin/estindex'

$ESTINDEX purge /var/www/localhost/estraier/crimson-snow > /dev/null 2>&1
$ESTINDEX register /var/www/localhost/estraier/crimson-snow /var/www/localhost/htdocs > /dev/null 2>&1
$ESTINDEX optimize /var/www/localhost/estraier/crimson-snow > /dev/null 2>&1
$ESTINDEX relate /var/www/localhost/estraier/crimson-snow > /dev/null 2>&1

スクリプトの自動実行

Gentoo ~ # crontab -e <= 設定ファイルの編集
00 03 * * * /root/estraier.sh <= 追加(毎日3:00にスクリプト実行)
▲ページのトップへ