Carpe Diem

  Top > スポンサー広告> Webサーバ > namazuのインストール  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

namazuのインストール

2011 - 05/19 [Thu] - 02:34

検索エンジンnamazuのインストール方法です。
なんで公式にはコマンド系のドキュメントがないんだろう。

まずはnkf、kakasiをインストール。これらを先にインストールした後じゃないと、namazuの./configureでパスが通らないため、インデックスを作成するときに

sh: no: command not found
と怒られる。うん、怒られた。

nkfの方は

$ sudo apt-get install nkf
でOK。
kakasiの方はnamazuのサイトにある

kakasi-2.3.4.tar.gz
をタウンロードして展開。フォルダに入って

$ ./configure
$ make
$ sudo make install


でインストール出来ます。nkfとkakasiがインストール出来たら、namazuも同じように

namazu-2.0.20.tar.gz
をダウンロードして展開。フォルダに入って

$ ./configure
$ make
$ sudo make install



次は設定です。この設定公式にもしっかり書いてほしい。。


◆mknmzコマンド設定
もともとあるサンプルファイル(mknmzrc-sample)を元に、mknmzrcという名で設定ファイルを作ります。

$ cp /usr/local/etc/namazu/mknmzrc-sample /usr/local/etc/namazu/mknmzrc
$ sudo emacs -nw /usr/local/etc/namazu/
mknmzrc

# $ALLOW_FILE = ".*\\.(?:$HTML_SUFFIX)|.*\\.txt" . # HTML, plain text
# "|.*\\.gz|.*\\.Z|.*\\.bz2" . # Compressed files
# "|.*\\.pdf|.*\\.ps" . # PDF, PostScript
# "|.*\\.tex|.*\\.dvi" . # TeX, DVI
# "|.*\\.rpm|.*\\.deb" . # RPM, DEB
# "|.*\\.doc|.*\\.xls|.*\\.pp[st]" . # Word, Excel, PowerPoint
# "|.*\\.j[sabf]w|.*\\.jtd" . # Ichitaro 4, 5, 6, 7, 8
# "|.*\\.sx[widc]" . # OpenOffice Writer,Calc,Impress,Draw
# "|.*\\.rtf" . # Rich Text Format
# "|.*\\.hdml" . # HDML
# "|.*\\.mp3" . # MP3
# "|\\d+|[-\\w]+\\.[1-9n]"; # Mail/News, man

$ALLOW_FILE = ".*\\.(?:$HTML_SUFFIX)"; ← 追加(HTMLを検索対象にする)

#がついてるのはサンプルのテンプレートです。この書き方に習ってファイルを追加してください。上の例ではHTMLのみ検索できます。
少し下に進むと、検索ファイル対象の最大ファイルサイズの設定があるのでそこも。

# The max file size for indexing. Files larger than this
# will be ignored.
# NOTE: This value is usually larger than TEXT_SIZE_MAX because
# binary-formated files such as PDF, Word are larger.
#
# $FILE_SIZE_MAX = 2000000;

$FILE_SIZE_MAX = 200000000000; ← 追加

デフォルトでは2M以下のファイルしか検索対象にされないので、上の例では200Gのファイルまで検索対象に入れてます。

次はmknmzコマンド編集です。mknmzコマンドが"Use of uninitialized・・・"というエラーメッセージを出力しないようにする対処です。

$ sudo emacs -nw /usr/local/bin/mknmz
#! /usr/bin/perl -w

#! /usr/bin/perl ← -wを削除


◆namazuコマンド設定
インデックスを元に検索を行うnamazuコマンドを設定します。これを設定しないと検索結果で文字化けします。
まずは先ほどと同じくサンプルファイルを元に設定ファイルを作成します。

$ cp /usr/local/etc/namazu/namazurc-sample /usr/local/etc/namazu/namazurc
$ sudo emacs -nw /usr/local/etc/namazu/
namazurc
## Replace: Replace TARGET with REPLACEMENT in URIs in search
## results.
##
## TARGET is specified by Ruby's perl-like regular expressions.
## You can caputure sub-strings in TARGET by surrounding them
## with `(' and `)'and use them later as backreferences by
## \1, \2, \3,... \9.
##
## To use meta characters literally such as `*', `+', `?', `|',
## `[', `]', `{', `}', `(', `)', escape them with `\'.
##
## e.g.,
##
## Replace /home/foo/public_html/ http://www.foobar.jp/~foo/
## Replace /home/(.*)/public_html/ http://www.foobar.jp/\1/
## Replace /C\|/foo/ http://www.foobar.jp/
##
## If you do not want to do the processing on command line use,
## run namazu with -U option.
##
## You can specify more than one Replace rules but the only
## first-matched rule are applied.
##
#Replace /home/foo/public_html/ http://www.foo.bar.jp/~foo/

Replace /var/www/webdav/ https://yyyyyyy.org/ ← 追加

上の例は/var/www/webdav/をhttps://yyyyyyy.org/に置換しています。これをすると検索結果を出すときにフォルダ構造ではなくhttps://の形で返してくれます。Webページに実装するなら必須です。
さらに下で

## Lang: Set the locale code such as `ja_JP.eucJP', `ja_JP.SJIS',
## `de', etc. This directive works only if the environment
## variable LANG is not set because the directive is mainly
## intended for CGI use. On the shell, You can set
## environemtnt variable LANG instead of using the directive.
##
## If you set `de' to it, namazu.cgi use
## NMZ.(head|foot|body|tips|results).de for displaying results
## and use a proper message catalog for `de'.
##
#Lang ja

Lang ja_JP.eucJP ← 追加

とすれば、検索結果で文字化けしないで表示されます。


◆インデックスの作成
まずはインデックスの作成先フォルダを作ります。searchという名前にします。
$ mkdir /usr/local/var/namazu/index/search

では検索対象にしたいフォルダ(今回は/var/www/webdavとします)を指定して、インデックスを作成します。
$ mknmz /var/www/webdav -O /usr/local/var/namazu/index/search|nkf -w

-O以下はオプションで、インデックスの作成先を指定しています。これがないとカレントフォルダに作成されます。

ちゃんと作成が確認できましたか?ちなみにこれ、ファイルサイズが大きいほど時間がかかりますし、マシンに負荷を与えます。プチフリになることもあるので。


◆検索
インデックスの作成ができたら、次は実際にインデックスを参照して検索してみます。例えばtestという文字で検索したい場合は

$ namazu test /usr/local/var/namazu/index/search|nkf -w


と打ちます。ちゃんと検索結果が返ってくるのが分かると思います。


とりあえずターミナル上でのインデックス作成、検索のみで。
WebページにCGIとして載せるのはまた次回以降。

けどこれファイルが漫画とかだと、zipの中身のjpegまでキーワード対象になってキーワード数が異常に多くなるから使わないかもしれません。もしかして付加かかるのもそのせいなのかな?mkvとかの動画ファイルはインデックス作成するのに何時間かかかることやら…。

namazuって全文検索ってかいてあるから,ファイルの中のテキストを全部読んで単語単位か文字単位でインデックス作ってると思う.
動画はバイナリなんで,意味のない文字列でインデックスされて意味のない作業になってしまってるんじゃないかな?時間がかかるのはファイルサイズの問題?

MP3にはフィルタが用意されてるみたいで,タイトルとかで検索かけれるのかも?
http://www.namazu.org/doc/manual.html#mknmzrc

ということで,動画とか画像は対象から外すべきかな?
ファイル名での検索は別の方法を使ったほうがいいと思う.

Re: タイトルなし

それが原因か!

でもそれ以外検索に使う対象無いしなぁ。
使うとしたら自分でHTML書いてファイルのリスト作成→それをnamazuに読み込ませる方法の方がいいのかな。。

Re: Re: タイトルなし

元々WebDAVで作られるインデックスのHTMLを保存して、それを読み込ませればうまくいくかも?
また今夜試してみるb

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。