|
|
全文検索システムNamazuの構築
|
全文検索エンジンとはNamazuのインストールNamazuのファイル構成Apacheによる公開設定索引作成のための設定mknmzによる索引の作成検索出力のための設定namazu.cgiによる検索の実行出力デザインのカスタマイズNamazu検索窓の設置Namazuの運用のポイント |
ページ上に検索窓を貼り付けるにはここまで説明してきた "/var/www/namazu/.namazu.cgi" の利用方法では、閲覧者に一度 Namazu の検索ページを開いてもらい、それから検索を行ってもらう、という手順になります。 もちろんこれは決して悪い方法ではなく、インターネットの黎明期にはこういった、「では、このページから検索を行ってください。」というスタンスは決して珍しいものではありませんでした。 そして、そういう検索エンジンの提供方法で構わないのであれば、その検索ページを開くためにコンテンツ上のどこかに、
という単純なリンクを設置すればOKです。 もちろん、Namazuを動作させている Webサーバー と、検索窓へのリンクを掲載する コンテンツ を配信するWebサーバーが同一であれば、
のように サーバー 内の 相対パス による指定でもOKです。 ただ最近ではコンテンツ上に設けられた入力欄に直接検索語をタイプするスタイルが一般的になっていて、「いったん検索ページを開いて、それからキーワードを入力して検索を行う。」という回りくどい方法は閲覧者に敬遠されがちです。 ここはGoogleやYahooなどの検索窓のように、ページ上に直接キーワードをタイプして検索を実行してもらうほうがベターです。 Namazuは HTTP のGETメソッドを使えば、 のような検索窓を簡単に設置することができます。 これは サーバー に関するテクニックではなく、 HTML の作成に関する技術ですから、ここでは詳しい説明はしませんが、参考のために上の検索窓の ソース を以下に示します。 メソッドに直接関係がないところはグレーで表示しています。
一般的にはこのように、検索キーワードのみを取り込む クエリ変数 として "query" だけを指定すればOKです。 しかしNamazuには、 "namazu.cgi" から利用できるいくつかの CGI 変数が準備されていますので、これらを利用すると更に柔軟な出力制御を行うことができます。 以下にその内容について説明します。
|
|||||||||||
NamazuのCGI変数以下に "namazu.cgi を実行するとき利用できる CGI 変数を示します。 "query"〜検索文字列の指定検索キーワードを指定する変数です。空白のときは検索結果ページではなく検索ページが開きます。 デフォルト 値はありません。 "max"〜一ページに表示する検索結果の最大数検索でヒットしたページを、検索結果ページに何ページずつ表示するかの指定です。 デフォルト は20です。 "result"〜通常表示か簡易表示かの選択検索結果のページを、通常表示(normal)で行うか簡易表示(short)で行うかを決定します。 "normal" か "short" かで指定します。 デフォルト は "normal" です。 "sort"〜並べ替えの方法の指定検索でヒットしたページを、検索結果ページにどういう順序で表示するかの指定です。これはたくさん選択肢があります。 "score"...スコア順 "date:late"...日付 (新しい順) "date:early"...日付 (古い順) "field:subject:ascending"...題名 (昇順) "field:subject:descending"...題名 (降順) "field:from:ascending"...著者 (昇順) "field:from:descending"...著者 (降順) "field:size:ascending"...サイズ (昇順) "field:size:descending"...サイズ (降順) "field:uri:ascending"...URI (昇順) "field:uri:descending"...URI (降順) デフォルト は "score" です。 "idxname"〜検索するインデックス名の指定複数の索引データベースを併用する場合に有効になる変数です。 今回は索引データベースは一つですから指定しません。 "subquery"〜補助検索式の指定検索を行う人が入力する "query" のキーワードと同時に指定するキーワードを設定します。 例えば健康食品と化粧品の通信販売のサイトを運営していて、一つの索引データベースにデータを格納している場合、健康食品のページに設置する検索窓に予め「健康食品」という "subquery" を設定しておくことで、化粧品関係の余計なページを表示させにくくすることができます。 |
||||||||||||
|
Namazuの解説書です
↓ |
また、確実にヒットすることが解っているキーワードをリスト化しておき、簡単に絞込み検索ができるようにすることもできます。 デフォルト 値はありません。 "whence"〜最初に表示する検索結果検索でヒットしたページを、何件目から表示するかを設定します。 これはどちらかといえば具体的にユーザーが指定する変数ではなく、ヒットしたページが多すぎて検索結果が一度に表示できないときに、 Namazu 自身が「次ページボタン」などを設置する場合の補助変数として利用します。 デフォルト は "0" 、つまり「最初から表示」です。 "reference"〜検索結果ページへの「参考ヒット数」の表示検索結果のページに「参考ヒット数:」を表示するかどうかを設定します。 "on" か "off" かで指定します。 デフォルト は "on" です。 "lang"〜検索ページの表示言語の指定検索結果のページの表示言語を指定します。
"/var/www/namazu/.namazurc"
の
"Lang"
ディレクティブ
が明示的に設定されている場合
今回は "Lang" に "ja_JP.eucJP" を設定しているはずですので設定は無効です。
|
|||||||||||
Namazu検索窓の設置応用例では、上の変数を利用した検索窓の作成例をいくつか示してみましょう。 例えば、
のように記述すると、 「参考ヒット数を表示せず、簡易表示で30件ごとにリストを出力する。」 という動作を行うようになります。あるいは、入力タイプをメニュー形式で選択できるようにして、
のようにすると、最初からユーザーに表示件数を選んでもらうこともできるようになります。 あとはあなたの工夫次第、というところでしょうか。
|
|
|
出力デザインのカスタマイズ
<<Previous
|
Next>>
Namazuの運用のポイント
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |