MB-Support

パソコン初心者のサポートページ

5.Namazu でインデックスを作成するNo.2

 ホームページ制作が順調に進むと、サイト内検索を設置したくなるのが一般的です。サイトのページ数の増加に伴い、テキストリンクだけでは対応できなくなるかです。しかし、BLOGとは異なり、自分のホームページにサイト内検索を設置するのは至難の業。そこで、無料で利用できる全文検索システムのNamazuを設定する方法をご紹介します。


前回 は、Namazu のテンプレートを変更して自分のホームページのデザインに合った検索ページを作成しました。 これでWEBサーバーに転送すれば、全文検索システムを導入できます。



本日は、 Namazu でインデックスを作成する のパート2です。 Namazu は、あらかじめインデックスを作成する事で、検索時のサーバー負荷を軽減する事ができます。 このインデックス作成が重要であり、頻繁にホームページの内容が更新される場合は、インデックスも頻繁に作成する必要があります。IISをインストールした初期状態では、 C:\Inetpub\wwwroot がホームページスペースになります。よって、インデックスを作成するコマンドは、


mknmz -OC:\namazu\var\namazu\index
C:\Inetpub\wwwroot\


となります(   は半角スペースを意味します  以下は省略)。 上のコマンドは、C:\Inetpub\wwwroot\ のホームページファイルのインデックスを作成して、C:\namazu\var\namazu\index フォルダに保存する コマンドです。 これは前に実行しましたね。C:\Inetpub\wwwroot\ 内のホームページを全て検索対象にする場合は簡単ですが、中には検索されたくないフォルダもあるでしょう。 例えば C:\Inetpub\wwwroot\ 内のファイルを検索対象にして、「serach」「webseach」フォルダ内のファイルを対象から外したい場合は、


mknmz -O C:\namazu\var\namazu\index C:\Inetpub\
wwwroot\ --exclude="(C:/Inetpub/wwwroot/seach/
|C:/Inetpub/wwwroot/webseach/)"

と入力します。検索対象の「C:\Inetpub\wwwroot\」の後に、「--exclude="(除外するパス)"」を付け加えます。 除外するパスは何個でもいいのですが、パスの間に「|」を入れてください (キーボードの「shift」+「\」キー )。 コマンドは長くなりますが、一番オーソドックスで組み立てやすいコマンドです。



逆に検索対象を「a」「b」「c」フォルダに限定したい場合は、検索対象をリスト化して読み込ませる事が可能です。 デスクトップにメモ帳を新規作成して( 右クリック→「新規作成」→「テキストドキュメント」 )、メモ帳に以下の検索対象リストを記入します。



C:\Inetpub\wwwroot\a\
C:\Inetpub\wwwroot\b\
C:\Inetpub\wwwroot\c\



メモ帳を上書き保存したら、名前の変更で「好きな名前.lst」に変更します。右画像では「index.lst」としてみました。 このリストファイルを適当なフォルダに移動しましょう。右画像では、C:\Inetpub\wwwroot\search\ に「lst」フォルダを作成して、 その中に「index.lst」を保管してみました。これで、C:\Inetpub\wwwroot\ の「a」「b」「c」フォルダのインデックスを作成するコマンドは、


mknmz -O C:\Inetpub\wwwroot\search\
search\index -F C:\Inetpub\wwwroot\search\search.lst

となります。今回はインデックスの保管場所を C:\Inetpub\wwwroot\search\search\index にしてみました。コマンドは改行無しで入力します。 最初のコマンドとの違いは 「wwwroot」直下に保存されているファイルを対象にしない事です。リストで指定したのは「a」「b」「c」フォルダだけなので、 C:\Inetpub\wwwroot\index.html などは、「serach」「webseach」フォルダと共に除外されてしまいます。



右画像の様に、「test」と名前が付いたフォルダが C:\Inetpub\wwwroot\ 内に沢山ある場合で、検索対象にしたく無い場合は、


mknmz -O C:\Inetpub\wwwroot\
search\search\index C:\Inetpub\
wwwroot\ --exclude="(/test/)"

と入力します。どの階層に「test」フォルダがあろうと、除外してくれます。さらに「serach」「webseach」フォルダも除外したい場合は、


mknmz -O C:\Inetpub\wwwroot\
search\search\index C:\Inetpub\wwwroot\ --exclude="(/test/|C:/Inetpub/wwwroot/seach/
|C:/Inetpub/wwwroot/webseach/)"

となります。ホームページで検索されたくないページがある場合は、robots.txtで対策していると思います。 つまり、ある程度フォルダを管理するべきなので、そう苦労する事は無いと思われますが、 とりあえず --exclude="(除外パス)" で、ガンガン入力した方が理解しやすいでしょう。



インデックスを作成する時は、メモ帳にコマンドを記入して、コマンドプロンプトにコピー&ペーストしながらテストした方が無難です。 脱字などで正しく実行されないミスも、コピー&ペーストなら何度でも簡単に実行できますから。 最終的にコマンドが完成したら、バッチファイルを作成します。完成したコマンドが

mknmz -O C:\Inetpub\wwwroot\search\
search\index C:\Inetpub\wwwroot\
 --exclude="(/test/|C:/Inetpub/wwwroot/seach/
|C:/Inetpub/wwwroot/webseach/)"

であるならば、行頭をpealのアドレスに変更します。

perl C:\namazu\bin\mknmz -O C:\Inetpub\wwwroot\search\
search\index C:\Inetpub\wwwroot\
 --exclude="(/test/|C:/Inetpub/wwwroot/seach/
|C:/Inetpub/wwwroot/webseach/)"

これをメモ帳に保存します。



保存したメモ帳の名前を「好きな名前.bat」に変更します。右画像は「新規テキスト ドキュメント.txt」を「namazuindex.bat」に名前変更しました。 これをダブルクリックすると、コマンドプロンプトが起動して、先ほど記入したコマンドが自動で実行されます。 自分のホームページスペースに合わせたコマンドさえ作ってしまえば、後はダブルクリックするだけでインデックスが作成できるのです。 次はダブルクリックするのも面倒なので、毎日、もしくは特定の間隔で勝手に「namazuindex.bat」を実行する「タスク」を設定しましょう。




戻る 一覧表示 次へ


BTOパソコン・ゲームPC・自作パソコンなら【TSUKUMO】 - 自作PCに必要なパーツ、豊富な品揃え

Copyright © 2013 MB-Support パソコン初心者のサポートページ All Rights Reserved.

管理人サイト閲覧方法プライバシーポリシー著作権/免責事項