Namazu-2.0.14 [FC4]
作成 : 2005/07/31
Namazu
日本語全文検索システム。 CGIにより、WEBサイトの全文検索ができる。 本家はhttp://www.namazu.org/。
Namazuのインストール
Namazu-2.0.4ではソースからコンパイルしたが、NamazuはFedora Extrasにパッケージがあるので、yumでインストールできることが発覚。 FC4のyumのデフォルト設定では、Extrasは検索対象になっているので簡単。 (FC3では、Extrasを検索するための追加設定が必要らしい)
# yum install namazu
Setting up Install Process
Setting up repositories
http://www.las.ic.unicamp.br/pub/fedora/linux/core/updates/4/i386/repodata/repomd.xml: [Errno 4] IOError: <urlopen error (113, 'No route to host')>
Trying other mirror.
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for namazu to pack into transaction set.
namazu-2.0.14-3.i386.rpm 100% |=========================| 18 kB 00:00
---> Package namazu.i386 0:2.0.14-3 set to be updated
--> Running transaction check
--> Processing Dependency: perl(File::MMagic) for package: namazu
--> Processing Dependency: perl-File-MMagic >= 1.12 for package: namazu
--> Processing Dependency: perl-Text-Kakasi >= 1.00 for package: namazu
--> Processing Dependency: kakasi >= 2.3.0 for package: namazu
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for perl-Text-Kakasi to pack into transaction set.
perl-Text-Kakasi-2.04-1.i 100% |=========================| 5.5 kB 00:00
---> Package perl-Text-Kakasi.i386 0:2.04-1 set to be updated
---> Downloading header for kakasi to pack into transaction set.
kakasi-2.3.4-20.i386.rpm 100% |=========================| 6.1 kB 00:00
---> Package kakasi.i386 0:2.3.4-20 set to be updated
---> Downloading header for perl-File-MMagic to pack into transaction set.
perl-File-MMagic-1.22-1.n 100% |=========================| 3.1 kB 00:00
---> Package perl-File-MMagic.noarch 0:1.22-1 set to be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
namazu i386 2.0.14-3 extras 353 k
Installing for dependencies:
kakasi i386 2.3.4-20 extras 74 k
perl-File-MMagic noarch 1.22-1 base 28 k
perl-Text-Kakasi i386 2.04-1 extras 30 k
Transaction Summary
=============================================================================
Install 4 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 486 k
Is this ok [y/N]: <span class="bold">y</span>
Downloading Packages:
(1/4): namazu-2.0.14-3.i3 100% |=========================| 353 kB 00:02
(2/4): perl-Text-Kakasi-2 100% |=========================| 30 kB 00:00
(3/4): kakasi-2.3.4-20.i3 100% |=========================| 74 kB 00:00
(4/4): perl-File-MMagic-1 100% |=========================| 28 kB 00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: kakasi ######################### [1/4]
Installing: perl-Text-Kakasi ######################### [2/4]
Installing: perl-File-MMagic ######################### [3/4]
Installing: namazu ######################### [4/4]
Installed: namazu.i386 0:2.0.14-3
Dependency Installed: kakasi.i386 0:2.3.4-20 perl-File-MMagic.noarch 0:1.22-1 perl-Text-Kakasi.i386 0:2.04-1
Complete!
Namazuに必要なパッケージで、まだインストールされていないパッケージも一緒にインストールしてくれる。 なお、Chasenのパッケージはないみたいなので、分かち書きにChasenを使いたい場合は別途用意しなければならないと思われる。
namazu.cgiによるWEB全文検索
namazu.cgiを利用して、WEB全文検索をしてみる。
ディレクトリ構成 /var/www/ +- html/ <--- HTMLドキュメントルート | +- namazu/ | +- namazu.cgi <--- namazu.cgi | +- .namazurc <--- namazu.cgiの設定ファイル +- namazu/ <--- Namazuのインデックスとテンプレートを置くディレクトリ
インデックスの作成
mknmzでインデックスを作成する。 下の例では、/var/www/htmlディレクトリ以下のファイルを対象としたインデックスを作成する。 実行すると、/var/www/namazuディレクトリにインデックスとテンプレートができる。
# mknmz -c --index-lang="ja_JP.eucJP" -O /var/www/namazu /var/www/html -O : インデックスの作成先ディレクトリ --index-lang : 指定した言語で処理
namazu.cgiと設定ファイル
namazu.cgiを/var/www/html/namazuディレクトリにコピーする。 namazu.cgiのパーミッションは、"755"あたりで。 設定サンプルファイルnamazurc-sampleを、namazu.cgiと同じディレクトリに.namazurcという名前でコピーする。
# cp /usr/local/libexec/namazu.cgi /var/www/html/namazu/ # chmod 755 /var/www/html/namazu/namazu.cgi # cp /usr/local/etc/namazurc-sample /var/www/html/namazu/.namazurc
.namazurcをサイトに合わせて修正する。
.namazurc Index /var/www/namazu <--- インデックスのあるディレクトリ Template /var/www/namazu <--- テンプレートのあるディレクトリ Replace /var/www/html/ http://www.greensleeves.jp/ <--- ファイルシステムとURLの置換 Lang ja_JP.eucJP <--- 言語の設定
Apacheの設定(httpd.conf)
/var/www/html/namazuディレクトリでCGIを実行できるようにする。 いちおう、.namazurcファイルにアクセスできないようにする。
httpd.conf
<Directory "/var/www/html/namazu">
Options ExecCGI
<Files ~ "\.namazurc">
Order allow,deny
Deny from all
</Files>
</Directory>
httpd.confを修正したら、サービスを再起動すること。
# /etc/init.d/httpd restart
テスト : namazu.cgiの実行
namazu.cgiにアクセスして、下のようなページが表示されれば成功。
定期的にインデックスを更新(cron)
定期的にmknmzでインデックスを更新するよう、/etc/cron.d/namazu_updateファイルを作成し、記述する。 下の例では、毎日2:00にインデックスを更新する。
/etc/cron.d/namazu_update
....
00 2 * * * root /usr/local/bin/mknmz -c --index-lang="ja_JP.eucJP" -O /var/www/namazu /var/www/html