|
|
全文検索システムNamazuの構築
|
全文検索エンジンとはNamazuのインストールNamazuのファイル構成Apacheによる公開設定索引作成のための設定mknmzによる索引の作成検索出力のための設定namazu.cgiによる検索の実行出力デザインのカスタマイズNamazu検索窓の設置Namazuの運用のポイント |
"namazu.cgi"用設定ファイル"namazurc"の編集Namazu の索引 データベース を参照して Webブラウザ に検索結果を表示する CGI プログラム "namazu.cgi" は、同じディレクトリ内の設定ファイル ".namazurc" を参照して動作しますので、実行の前にこれを最適化する必要があります。
まず、
サブネット
内の適当な
クライアント機
から
SSHクライアント
で
構築中のLinuxサーバー
に
ログイン
します
それから
su
コマンド
で
アカウント
を
"root"
に変更し、
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" が参照する索引データベースの パス を設定する ディレクティブ です。 デフォルト では、
となっていますので、これを索引データベースの出力先にあわせて以下のように書き換えてください。
Template〜テンプレートファイルのパスWBEL3 及び CentOS3 、WBEL4及びCentOS4とも 21行目 あたりに記述があります。 検索結果ページの出力に使用するテンプレートファイルの場所を指定する ディレクティブ です。 デフォルト では、
となっています。ここは「テンプレートの設定だから"/var/www/namazudata/template"だよね?。」と思いがちですが、実は、
が正解です。 "/var/www/namazudata/template" は確かにテンプレートの保存 パス ですが、これは正確にいえば、 「"mknmz"により"/var/www/namazudata/db"以下に作成されるテンプレートファイルの元となるテンプレートのパス。」 です。 つまりここに"/var/www/namazudata/template"を設定してしまうと、"mknmz"による処理が行われる前のテンプレートを読み込んでしまうことになるため、"mknmzrc"による設定の一部がページ上で反映されないことになります。 このディレクティブは明示的に設定を行わなければ "Index" ディレクティブと同じパスになるようですが、後で設定の意味を忘れてしまわないようにきちんと明示しておきましょう。 Replace〜URL文字列の設定WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 48行目 あたりに記述があります。 デフォルト では、
となっています。
コマンド
ラインでの
"namazu"
のによる検索結果
コマンドラインでの"namazu"の実行結果 しかし、この絶対パスをそのまま閲覧者の Webブラウザ で表示しても意味がありませんので、 "namazu.cgi" で検索を実行するときは、 URL の形に直して表示しなければなりません。 この "Replace" は、絶対パス表記の中の先頭の部分をURL形式に置き換えるディレクティブで、
Replace [元のディレクトリ文字列] [置換したいURL文字列]
と記述します。 従ってこのディレクティブを、
と記述しておくことで、
/var/www/html/_dnsserver/index.html
↓ http://www.obenri.com/_dnsserver/index.html と表示してくれるようになります。 もちろんリンクも同時に変更されます。 Logging〜検索語をログとして残すか否かの設定WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 55行目 あたりに記述があります。 "namazu.cgi" によって行われた検索の ログ を記録するかどうかを設定する ディレクティブ です。
設定ファイル中の説明(赤字の部分)にもあるとおり、明示的に設定を有効にしない場合は、検索 データベース の パス に "NMZ.slog" という テキスト ファイルで検索の履歴を記録することになります。 ログの記録による動作負荷はほとんどありませんし、後々役立つこともあるかもしれませんので、これは デフォルト ままにしておき、ログをとるようにしましょう。 Lang〜表示する言語の指定WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 69行目 あたりに記述があります。 検索結果の言語を設定する ディレクティブ です。 デフォルト では、
となっていて英語表記となりますから、ここは先頭の "#" をはずして
とし、 EUC の日本語表記に変更します。 Scoring〜キーワード重要度の計算方法の選択WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 75行目 あたりに記述があります。
検索の結果、リストに表示されるページの順番を、
"/var/www/namazudata/mknmzrc"
の
"%Weight"
ディレクティブ
デフォルト では、
となっていて、 "simple" 、つまり「スコア」を基準とするようになっています。 本来、こういったページ検索においては、特に複数のキーワードによる「AND検索」などでは「TF-IDF法」が望ましいとされています。 しかしWBELやCentOSに RPM から インストール されている Namazu では「TF-IDF法」は利用できませんので、デフォルトのまま利用してください。 EmphasisTags〜検索文字の強調表示の方法WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 82行目 あたりに記述があります。 "namazu.cgi" による検索結果リストの中で、見出し文の中に検索対象のキーワードが含まれていると、そのキーワードは自動的に「赤の太字」で表示されます。
"namazu.cgi"による検索実行結果の例 |
||||||||||||||
| "\" は、直後のダブルクウォーツ記号を文字として利用するためのエスケープ文字です。間違えて消さないようにしてください。 |
となっていて "#" で無効化されていますが、実はこの内容がデフォルトのパラメータになります。 "namazu.cgi" で検索結果が出力された場合、検索対象のキーワードには、
のように "<strong>" の強調タグが付加されます。 具体的にいうとここの部分の設定は "/var/www/namazudata/db/" 以下に保存されている "NMZ.head.ja" という検索出力ヘッダ用ファイルの中に、
というスタイルシートの記述があって、"strong"タグのデフォルトである"太字"に"Red"という書体がクラスとして登録されているわけです。 つまり、別にこの "EmphasisTags" ディレクティブを変更しなくても、 "/var/www/namazudata/template" の中の "NMZ.head.ja" を適当に修正して "mknmz" を実行すれば、文字のデザインはどうにでもなるわけです。 ということは文字のデザインの変更だけが目的だとすれば、強いてこの "EmphasisTags" ディレクティブを変更する理由はありません。 このディレクティブを変更しなければならなのは、"strong"以外のタグを使いたい、あるいは"keyword"以外のクラス名を使いたい、という極めて稀なケースにがぎられるでしょう。 MaxHit〜ヒットして表示する最大ページ数WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 89行目 あたりに記述があります。 "namazu.cgi" による検索結果として表示するページ数の上限を設定する ディレクティブ です。 デフォルト は、
となっていて "#" で無効化されていますが、この10000がデフォルトのパラメータになります。 常識的に考えて変更の必要はないでしょう。 MaxMatch〜ヒットする最大キーワード数WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 96行目 あたりに記述があります。 "namazu.cgi" による検索対象のページ中の、ヒットカウントの上限を設定する ディレクティブ です。 デフォルト は、
となっていて "#" で無効化されていますが、この1000がデフォルトのパラメータになります。 これも常識的に考えて変更の必要はないでしょう。 ContentType〜コンテンツタイプの指定WBEL3 及び CentOS3 、WBEL4及びCentOS4とも 101行目 あたりに記述があります。 "namazu.cgi" による検索結果の コンテンツ タイプを変更する ディレクティブ です。 デフォルト は、
となっていて "#" で無効化されていますが、デフォルトのコンテンツタイプは通常の "text/html" です。 通常は変更する必要はないでしょう。
|
|
|
mknmzによる索引の作成
<<Previous
|
Next>>
namazu.cgiによる検索の実行
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |