*** Namazu による全文検索 [#b4f7936d]

- あるファイルから検索したい文字列を探す場合、ファイルをひとつ一つ開いて探すとかgrepで検索するとかしますよね?~
腕に自身がある方は、正規表現で探したりと・・・すると思いますが、文脈とか複合したキーワードで調べることが~
できないので結構大変なんですよね。こんなとき貴方はどします? システム屋さんにお願いしますか?それとも諦める?~
そんなことをしなくてもフリーソフトのNamazuで全文検索できるのでこんな悩みも一発解決!(笑

- と少しおちゃらけましたが、全文検索とは「全文章の中から検索できる」という意味で、この検索方法は~
有名なYahooとかMSNとかでHP上から目的の語句、キーワードを指定して検索できるシステムの根幹となっている部分で~
日本語的に会話口調とか難しい文章も、それぞれの語句に切り分ける技術として確立されています。

- Namazu による全文検索のメリットは、中規模なサイトでも十分運用が耐えられる検索スピードであること、~
検索のテンプレートをカスタマイズすることもできる。なにより設置が楽であることがあげられる。

: 前提条件 | COLOR(RED){''namazu*, kakasi*''}パッケージがインストール((パーケッジの[[インストール方法>パーケッジのインストールの巻]]はこちらを参照))されていることが条件。~
パッケージの確認は、COLOR(RED){''rpm -q namazu''}コマンドで確認できるよ。~

*** indexファイルの作成前に [#h08c231a]

- Namazu による全文検索の使用用途は、通常Webの文章を検索するために使うのが一般的です、~
もちろんコマンドラインにも対応していたり、Wordの文章やExcel, PDF などからも検索対象とできますが~
ここではWebの文章を検索対象とします。

- COLOR(RED){''/etc/namazu/mknmzrc''} 以下の定義値を修正または追加する。
 # サーバーの管理者メールアドレスを設定
 $ADDRESS = 'webmaster@sea-bird.org';
 # index除外ファイルを設定
 $DENY_FILE = ".*\\.(gif|png|jpg|jpeg)|.*\\.tar\\.gz|core|.*\\.bak|.*~|\\..*|\x23.*";
 # index除外パスの指定
 $EXCLUDE_PATH = "/var/www/cgi-bin/";

: COLOR(RED){mknmz コマンド} を実行して表示が漢字でないときは・・・ | Namazuで漢字を使うことができません。インストール、OSの設定方法等を見直してみてください。

- indexファイルを作成します。Namazu による全文検索は、このindexファイルを指定することにより~
目的別の検索システムを構築することが可能です。サイト内全体を検索対象にしては問題があるときは、~
別々のindexファイルを作成し検索システムを構築します。~
また、本文とindexファイルとの関連を結びつけるのは、このindexファイルとなるため定期的に~
indexファイルを再構築してあげる必要があります。

*** indexファイルの作成 [#b9f157a1]

- 下記の条件にてsea-bird.org内の資料をNamazu化してみます。
|CENTER:項番|CENTER:ディレクトリ|CENTER:用途|h
|1.|/var/www/sea-bird.org/index|indexファイル, Webコンテンツとして公開しない場所に作成する|
|2.|/var/www/html/doc/|設定資料等のhtmlファイル|
|3.|/var/www/html/namazu|Namazu検索プログラムファイルの格納場所|
|4.|http://www.sea-bird.org/namazu/namazu.cgi|Namzu検索|

+ indexファイルのディレクトリ作成
 # mkdir -p /var/www/sea-bird.org/index
 # chown -R apache.apache /var/www/sea-bird.org/index
+ indexファイルの作成
 # mknmz -O /var/www/sea-bird.org/index /var/www/html/doc/
-- 作成したindexファイルが、使用できるか確認します。ここではキーワード COLOR(RED){hoge} を指定してみます。
 # namazu hoge /var/www/sea-bird.org/index
 検索結果
 
 参考ヒット数:  [ hoge: 51 ]
 
 検索式にマッチする 51 個の文書が見つかりました。
 
 1. CVS, サーバ(pserver)の設定について (スコア: 53)
 著者: murata@sea-bird.org
 日付: Tue, 11 Nov 2003 11:04:24
 CVSの設定(はじめだけ♪) CVSのレポジトリ登録 CVSのチェックアウト、コミット CVSサーバ(pserver)の設定
 /var/www/html/doc/Linux/cvs_pserver.html (21,949 bytes)
+ Namazu検索プログラムを設置
 # mkdir /var/www/html/namazu
 # chown -R apache.apache /var/www/html/namazu
 # chmod g+s /var/www/html/namazu
 # cp /var/www/cgi-bin/namazu.cgi /var/www/html/namazu
 # cp /etc/namazu/namazurc /var/www/html/namazu/.namazurc
--  COLOR(RED){''/var/www/html/namazu/.namazurc''} 以下の定義値を修正または追加する。
 # indexファイル格納ディレクトリ
 Index         /var/www/sea-bird.org/index
 # 検索結果からリンクを行うときに、元の設定資料等のhtmlファイルにリンクできるように調整
 Replace       /var/www/html/ http://www.sea-bird.org/
-- Replaceでの指定は、上記 COLOR(RED){namazu コマンド} の結果で最後にパスが表示されていると思います。~
このまま使用しても検索はできるが、その本文のリンクが別の所をさしているのでそれを Replaceにて~
変換し正規のURLの位置となるように指定します。
 "/var/www/html/" 部分を "http://www.sea-bird.org/" に置き換える。
+ Namzu検索できるか確認する。[[http://www.sea-bird.org/namazu/namazu.cgi>http://www.sea-bird.org/namazu/namazu.cgi]]~
※Documentルートは、各システムにより異なるためここでは記述しない

: 本文とindexファイルとの関連を結びつけは、定期的に行う必要があります。| cron にて mknmz を実行するといいでしょう。

*** 検索方法 [#bb672af6]

- 検索方法は、直接 namazu.cgi を実行してもよし下記の様なhtmlを利用してもよしです。
 <form method="get" action="namazu/namazu.cgi">
   <p id="serch">★本サイト内検索</p>
   <p>
     <input type="text" name="query" size="20">
     &nbsp<input type="submit" name="submit" value="Search">
     <input type="hidden" name="max" value="20">
     <input type="hidden" name="result" value="normal">
     <input type="hidden" name="sort" value="score">
   </p>
 </form>

*** 検索画面のカスタマイズ [#w18de969]

- 某大手サイトでも、このNamazuを使用しています。けどそんな風に感じないのは検索画面とかをカスタマイズしているから。~
そんなデザインセンスある方は、下記ファイルを編集してみて綺麗にしてみては如何でしょうか?
|CENTER:ファイル|CENTER:用途|h
|NMZ.head.ja|ヘッダ|
|NMZ.foot.ja|フッタ部|
|NMZ.result.short.ja|検索結果部(簡潔版)|
|NMZ.result.normal.ja|検索結果部(標準版)|
|NMZ.body.ja|検索方法部|
|NMZ.tips.ja|検索ヒント部|

- '''/var/www/sea-bird.org/index''' 下に上記ファイルが作成されています。~
このファイルは、/var/www/html/namazu/.namazurc の Template 部で、ディレクトリを変更することも可能です。
 Template        /var/www/sea-bird.org/template

: 注意 | Template にてディレクトリを変更した場合、上記表のファイルを全てコピーしないといけません。

*** indexファイルの定期的な再構築 [#h837b039]

- cronで実行するファイルを作成する。~
ここでは、COLOR(RED){''/cronscript/namazu_sea-bird.org_doc.sh''} とします。※もちろん実行権もつけまっせ。
 #!/bin/sh
 export LANG=ja_JP.eucJP
 export PEAL_BADLANG=0
 mknmz -O /var/www/sea-bird.org/index /var/www/html/doc/

- cronの設定を行う。
 # crontab -e
 0 7 * * * /cronscript/namazu_sea-bird.org_doc.sh

*** 参考にさせて頂いたサイト様 [#v14a271d]

- [[Namazu 2.0 入門(本家)>http://www.namazu.org/doc/tutorial.html]]
- [[Namazu 2.0 入門(とてもわかりやすい)>http://www.ki.nu/software/namazu/tutorial/purpose.html]]
- [[マニュアルに書いてないNAMAZU>http://www.amays.com/~mizusawa/namazu_kaisetu/]]
- [[fml のメーリングリストを WWWで公開つつ全文検索システムを構築>http://www.sea-bird.org/doc/Qube3J/fml_www3.html]]
- [[はじめての自宅サーバー構築 - サイト内検索システムの構築(Namazu)>http://www.kaju.homeip.net/namazu.shtml]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS