Namazu-2.0.14 [FC4]

[サーバの実験室 Redhat/Fedora]

作成 : 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にアクセスして、下のようなページが表示されれば成功。

namazu

定期的にインデックスを更新(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

[サーバの実験室 Redhat/Fedora]