このページでは全文検索エンジンNamazuの索引窓をコンテンツ上に設置する方法について初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
全文検索システムNamazuの構築

全文検索エンジンとは

Namazuのインストール

Namazuのファイル構成

Apacheによる公開設定

索引作成のための設定

mknmzによる索引の作成

検索出力のための設定

namazu.cgiによる検索の実行

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

Namazu検索窓の設置

Namazuの運用のポイント


ページ上に検索窓を貼り付けるには

ここまで説明してきた "/var/www/namazu/.namazu.cgi" の利用方法では、閲覧者に一度 Namazu の検索ページを開いてもらい、それから検索を行ってもらう、という手順になります。

もちろんこれは決して悪い方法ではなく、インターネットの黎明期にはこういった、「では、このページから検索を行ってください。」というスタンスは決して珍しいものではありませんでした。

そして、そういう検索エンジンの提供方法で構わないのであれば、その検索ページを開くためにコンテンツ上のどこかに、

<A HREF="http://www.obenri.com/namazu/namazu.cgi">ページ内検索</A>

という単純なリンクを設置すればOKです。

もちろん、Namazuを動作させている Webサーバー と、検索窓へのリンクを掲載する コンテンツ を配信するWebサーバーが同一であれば、

<A HREF="../namazu/namazu.cgi">ページ内検索</A>

のように サーバー 内の 相対パス による指定でもOKです。

ただ最近ではコンテンツ上に設けられた入力欄に直接検索語をタイプするスタイルが一般的になっていて、「いったん検索ページを開いて、それからキーワードを入力して検索を行う。」という回りくどい方法は閲覧者に敬遠されがちです。

ここはGoogleやYahooなどの検索窓のように、ページ上に直接キーワードをタイプして検索を実行してもらうほうがベターです。

Namazuは HTTP のGETメソッドを使えば、

のような検索窓を簡単に設置することができます。

これは サーバー に関するテクニックではなく、 HTML の作成に関する技術ですから、ここでは詳しい説明はしませんが、参考のために上の検索窓の ソース を以下に示します。

メソッドに直接関係がないところはグレーで表示しています。

<center>
<form method="GET" action="../namazu/namazu.cgi" TARGET="_blank">
<A HREF="../index.html">
<IMG SRC="../_image/search_logo01.gif" ALIGN="top" ALT="お便利サーバー.comトップページへ">
</A>

<input type="text" name="query" size="22" VALUE="">
<input type="submit" value="検索">
</form>
</center>

一般的にはこのように、検索キーワードのみを取り込む クエリ変数 として "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" ディレクティブ が明示的に設定されている場合 .namazurcのLangディレクティブの設定 は無効になります。

今回は "Lang" "ja_JP.eucJP" を設定しているはずですので設定は無効です。

このページの先頭へ↑

Namazu検索窓の設置応用例

では、上の変数を利用した検索窓の作成例をいくつか示してみましょう。

例えば、

<center>
<form method="GET" action="../namazu/namazu.cgi" TARGET="_blank">
<A HREF="../index.html">
<IMG SRC="../_image/search_logo01.gif" ALIGN="top" ALT="お便利サーバー.comトップページへ">
</A>

<input type="text" name="query" size="22" VALUE="">
<input type="hidden" name="max" value="30">
<input type="hidden" name="result" value="short">
<input type="hidden" name="reference" value="off">

<input type="submit" value="検索">
</form>
</center>

のように記述すると、

「参考ヒット数を表示せず、簡易表示で30件ごとにリストを出力する。」

という動作を行うようになります。あるいは、入力タイプをメニュー形式で選択できるようにして、

<center>
<form method="GET" action="../namazu/namazu.cgi" TARGET="_blank">
<A HREF="../index.html">
<IMG SRC="../_image/search_logo01.gif" ALIGN="top" ALT="お便利サーバー.comトップページへ">
</A>

<input type="text" name="query" size="22" VALUE="">
表示件数:
<select name="max">
<option value="10">10
<option selected value="20">20
<option value="30">30
<option value="50">50
<option value="100">100
</select>
<input type="hidden" name="result" value="short">
<input type="hidden" name="reference" value="off">

<input type="submit" value="検索">
</form>
</center>

のようにすると、最初からユーザーに表示件数を選んでもらうこともできるようになります。

お便利サーバー.comトップページへ 表示件数:

あとはあなたの工夫次第、というところでしょうか。

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