このページでは全文検索エンジンNamazuの索引データベースからnamazu.cgiで検索を実行するときの設定ファイル.namazurcの記述について解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
全文検索システムNamazuの構築

全文検索エンジンとは

Namazuのインストール

Namazuのファイル構成

Apacheによる公開設定

索引作成のための設定

mknmzによる索引の作成

検索出力のための設定

namazu.cgiによる検索の実行

出力デザインのカスタマイズ

Namazu検索窓の設置

Namazuの運用のポイント


"namazu.cgi"用設定ファイル"namazurc"の編集

Namazu の索引 データベース を参照して Webブラウザ に検索結果を表示する CGI プログラム "namazu.cgi" は、同じディレクトリ内の設定ファイル ".namazurc" を参照して動作しますので、実行の前にこれを最適化する必要があります。

まず、 サブネット 内の適当な クライアント機 から SSHクライアント 構築中のLinuxサーバー ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) SSHクライアントでサーバーに接続する(WBEL4) SSHクライアントでサーバーに接続する(CentOS4)

それから su コマンド アカウント "root" に変更し、 nano エディタで "/var/www/namazu/.namazurc" を開きます nanoエディタでファイルを開く

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# nano /var/www/namazu/.namazurcEnter


nanoで/var/www/namazu/.namazurcを開く
nanoで"/var/www/namazu/.namazurc"を開く

基本的な書式は、

[ ディレクティブ 名] [パラメータ]

です。

[ディレクティブ名]と[パラメータ]の間はスペースまたはTabで区切ります。スペースとTabの数に決まりはありませんので、設定が見やすいように適宜調整してかまいません。

"#" 以降の行はコメント文として設定値からは無視されますので、注釈や設定を一時無効にするときなどに利用してください。

また、 "namazu.cgi" デーモン ではありませんので設定を書き換えれば次の実行時に必ず反映されます。

Namazuの解説書です

以下、設定ファイル中の行数を基準に主要な ディレクティブ について解説しますが、バージョンアップや記述の方法によっては多少行数がずれるかもしれませんので注意してください。

このページの先頭へ↑

主要ディレクティブの設定

"/var/www/namazu/.namazurc" では、すべての ディレクティブ の先頭に "#" が付けられています。

デフォルト のパラメータで構わないときはそのままで構いませんが、できるだけ明示的に設定を行うほうが後から有効な設定をチェックしやすくなります。

Index〜索引データベースのパス

WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 14行目 あたりに記述があります。

"namazu.cgi" が参照する索引データベースの パス を設定する ディレクティブ です。

デフォルト では、

#Index     /usr/local/var/namazu/index

となっていますので、これを索引データベースの出力先にあわせて以下のように書き換えてください。

Index     /var/www/namazudata/db

Template〜テンプレートファイルのパス

WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 21行目 あたりに記述があります。

検索結果ページの出力に使用するテンプレートファイルの場所を指定する ディレクティブ です。

デフォルト では、

#Template   /usr/local/var/namazu/index

となっています。ここは「テンプレートの設定だから"/var/www/namazudata/template"だよね?。」と思いがちですが、実は、

Template   /var/www/namazudata/db

が正解です。

"/var/www/namazudata/template" は確かにテンプレートの保存 パス ですが、これは正確にいえば、

「"mknmz"により"/var/www/namazudata/db"以下に作成されるテンプレートファイルの元となるテンプレートのパス。」

です。

つまりここに"/var/www/namazudata/template"を設定してしまうと、"mknmz"による処理が行われる前のテンプレートを読み込んでしまうことになるため、"mknmzrc"による設定の一部がページ上で反映されないことになります。

このディレクティブは明示的に設定を行わなければ "Index" ディレクティブと同じパスになるようですが、後で設定の意味を忘れてしまわないようにきちんと明示しておきましょう。

Replace〜URL文字列の設定

WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 48行目 あたりに記述があります。 デフォルト では、

#Replace    /home/foo/public_html/ http://www.foo.bar.jp/~foo/

となっています。

コマンド ラインでの "namazu" のによる検索結果 namazuコマンドで検索を実行する を見ればわかりますが、検索結果で示されるページの場所は、 構築中のLinuxサーバー 上の 絶対パス で表示されます。

コマンドラインでのnamazuの実行結果
コマンドラインでの"namazu"の実行結果

しかし、この絶対パスをそのまま閲覧者の Webブラウザ で表示しても意味がありませんので、 "namazu.cgi" で検索を実行するときは、 URL の形に直して表示しなければなりません。

この "Replace" は、絶対パス表記の中の先頭の部分をURL形式に置き換えるディレクティブで、

Replace [元のディレクトリ文字列] [置換したいURL文字列]

と記述します。

従ってこのディレクティブを、

Replace    /var/www/html/ http://www.obenri.com/

と記述しておくことで、

/var/www/html/_dnsserver/index.html

http://www.obenri.com/_dnsserver/index.html

と表示してくれるようになります。

もちろんリンクも同時に変更されます。

Logging〜検索語をログとして残すか否かの設定

WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 55行目 あたりに記述があります。

"namazu.cgi" によって行われた検索の ログ を記録するかどうかを設定する ディレクティブ です。

##
## Logging: Set OFF to turn off keyword logging to NMZ.slog.
## Default is ON.
##
#Logging    off

設定ファイル中の説明(赤字の部分)にもあるとおり、明示的に設定を有効にしない場合は、検索 データベース パス "NMZ.slog" という テキスト ファイルで検索の履歴を記録することになります。

ログの記録による動作負荷はほとんどありませんし、後々役立つこともあるかもしれませんので、これは デフォルト ままにしておき、ログをとるようにしましょう。

Lang〜表示する言語の指定

WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 69行目 あたりに記述があります。

検索結果の言語を設定する ディレクティブ です。 デフォルト では、

#Lang     ja

となっていて英語表記となりますから、ここは先頭の "#" をはずして

Lang     ja_JP.eucJP

とし、 EUC の日本語表記に変更します。

Scoring〜キーワード重要度の計算方法の選択

WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 75行目 あたりに記述があります。

検索の結果、リストに表示されるページの順番を、 "/var/www/namazudata/mknmzrc" "%Weight" ディレクティブ %Weightディレクティブについて で設定された基礎点の合計「スコア」を基準とするか、 「TF-IDF法」 と呼ばれる特殊な「単語の重要度計算」に基づいて行うか、を選択するディレクティブです。

デフォルト では、

##
## Scoring: Set the scoring method "tfidf" or "simple".
##
#Scoring    tfidf

となっていて、 "simple" 、つまり「スコア」を基準とするようになっています。

本来、こういったページ検索においては、特に複数のキーワードによる「AND検索」などでは「TF-IDF法」が望ましいとされています。

しかしWBELやCentOSに RPM から インストール されている Namazu では「TF-IDF法」は利用できませんので、デフォルトのまま利用してください。

EmphasisTags〜検索文字の強調表示の方法

WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 82行目 あたりに記述があります。

"namazu.cgi" による検索結果リストの中で、見出し文の中に検索対象のキーワードが含まれていると、そのキーワードは自動的に「赤の太字」で表示されます。

namazu.cgiによる検索実行結果の例
"namazu.cgi"による検索実行結果の例

これを変更したい場合に 設定を変えることがある ディレクティブ です。 デフォルト では、

"\" は、直後のダブルクウォーツ記号を文字として利用するためのエスケープ文字です。間違えて消さないようにしてください。
#EmphasisTags "<strong class=\"keyword\">"  "</strong>"

となっていて "#" で無効化されていますが、実はこの内容がデフォルトのパラメータになります。

"namazu.cgi" で検索結果が出力された場合、検索対象のキーワードには、

<strong class="keyword">named</strong>

のように "<strong>" の強調タグが付加されます。

具体的にいうとここの部分の設定は "/var/www/namazudata/db/" 以下に保存されている "NMZ.head.ja" という検索出力ヘッダ用ファイルの中に、

<style type="text/css"><!--
 strong.keyword { color: Red; }
.
.
.
--></style>

というスタイルシートの記述があって、"strong"タグのデフォルトである"太字"に"Red"という書体がクラスとして登録されているわけです。

つまり、別にこの "EmphasisTags" ディレクティブを変更しなくても、 "/var/www/namazudata/template" の中の "NMZ.head.ja" を適当に修正して "mknmz" を実行すれば、文字のデザインはどうにでもなるわけです。

ということは文字のデザインの変更だけが目的だとすれば、強いてこの "EmphasisTags" ディレクティブを変更する理由はありません。

このディレクティブを変更しなければならなのは、"strong"以外のタグを使いたい、あるいは"keyword"以外のクラス名を使いたい、という極めて稀なケースにがぎられるでしょう。

MaxHit〜ヒットして表示する最大ページ数

WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 89行目 あたりに記述があります。

"namazu.cgi" による検索結果として表示するページ数の上限を設定する ディレクティブ です。 デフォルト は、

#MaxHit 10000

となっていて "#" で無効化されていますが、この10000がデフォルトのパラメータになります。

常識的に考えて変更の必要はないでしょう。

MaxMatch〜ヒットする最大キーワード数

WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 96行目 あたりに記述があります。

"namazu.cgi" による検索対象のページ中の、ヒットカウントの上限を設定する ディレクティブ です。 デフォルト は、

#MaxMatch    1000

となっていて "#" で無効化されていますが、この1000がデフォルトのパラメータになります。

これも常識的に考えて変更の必要はないでしょう。

ContentType〜コンテンツタイプの指定

WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 101行目 あたりに記述があります。

"namazu.cgi" による検索結果の コンテンツ タイプを変更する ディレクティブ です。 デフォルト は、

#ContentType "text/x-hdml"

となっていて "#" で無効化されていますが、デフォルトのコンテンツタイプは通常の "text/html" です。

通常は変更する必要はないでしょう。

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System