1.Namazuをインストールする
2.PDF検索用のフィルタをインストールする
3.search-s for Namazuのインストール

Namazuで検索する(Windows編)


Namazuとは


検索エンジンのようにあるキーワードを使い、サーバ内のドキュメントを検索するのに、Namazuを使うと便利だ。findやgrepと違って大量のファイルからキーワードを使って必要な情報を検索する際に、事前にインデックスを作成しておくことで高速に検索できる。

Namazu以外の検索エンジンソフトについては、下記で詳細にまとめられている。
Lists of the full-text retrieval softwares which can handle japanese properly.
日本語全文検索エンジンソフトウェアのリストである。


1.Namazuをインストールする。


Windows 2000 Professional で構築した事例を以下に示す。
  1. Active Perl をインストールする。
    Namazu を動かすためには、Perl 環境が必要なので、Active Perl を入手しインストールしよう。
    ActiveState - ActiveState ActivePerl free Perl open source binary language distributionから、ActivePerl-5.6.1 (2004年1月4日現在 build 635 が最新)をダウンロードしてインストールする。
    ActivePerl-5.8.1 もリリースされているが、5.8 系は後で実行するインストールプロセスで PPM-INSTALLが失敗するので注意したい。
    ディレクトリ名の一部に空白が入っていると動作しないとの情報もある。

  2. KAKASI をインストールする
    次に、KAKASI - 漢字→かな(ローマ字)変換プログラムから、kakasi-2.3.4.zip をダウンロードし解凍する。解凍先は C:\kakasi とした。

  3. Namazu をインストールする。
    全文検索システム Namazu for Win32から、nmz2012.exe をダウンロードし実行する。このファイルは自己解凍型ファイルになっている。(2006年9月9日現在 最新版は2.0.16)
    解凍先に namazu フォルダが作成されるので、C:\namazu に解凍したい場合は、解凍先フォルダ名を C:\ (デフォルト)とするのがよいだろう。
    このファイルを実行すると、Windows ActivePerl専用バイナリモジュールをインストールするために、NMZSETUP.BAT が実行される。
    ###
    ### Namazu for Win32 auto setting program.
    ###
    Namazu for Win32 の実行に必要な準備をセットアップします.
    Do you wish to proceed? [Y/n] Y
    PATH environment variable was set.
    The value of C:\Perl\bin\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem; was set.
    
    NAMAZURC environment variable was set.
    The value of C:\namazu\etc\namazu\namazurc was set.
    
    NAMAZULOCALEDIR environment variable was set.
    The value of C:\namazu\share\locale was set.
    
    MKNMZRC environment variable was set.
    The value of C:\namazu\etc\namazu\mknmzrc was set.
    
    C:\namazu\etc\namazu\namazurc-sample.win32 file was made.
    
    C:\namazu\etc\namazu\mknmzrc-sample.win32 file was made.
    
    ------------------------------------------------------
        Perl modules Installer for Windows ActivePerl
    ------------------------------------------------------
    Are you sure to install perl modules ? [Y/n] Y
    
    >>> call PPM.BAT install File-MMagic.ppd
    Installing package 'File-MMagic.ppd'...
    
    >>> call PPM.BAT install NKF.ppd
    Installing package 'NKF.ppd'...
    
    >>> call PPM.BAT install Text-Kakasi.ppd
    Installing package 'Text-Kakasi.ppd'...
    
    >>> call PPM.BAT install Search-Namazu.ppd
    Installing package 'Search-Namazu.ppd'...
    
    ### Finish !!!
    

    ここで環境変数を有効するために、ログオフしログオンしておこう。
    次にコマンドプロンプトから、mknmz -C により対応メディアタイプ(検索対象)を参照できる。

    >mknmz -C
    読み込んだ設定ファイル: C:/namazu/etc/namazu/mknmzrc
    システム: MSWin32
    Namazu: 2.0.12
    Perl: 5.006001
    NKF: module_nkf
    KAKASI: module_kakasi -ieuc -oeuc -w
    茶筌: chasen -j -F '%m '
    わかち書き: module_kakasi -ieuc -oeuc -w
    メッセージの言語: ja_JP.SJIS
    言語: ja_JP.SJIS
    文字コード: sjis
    CONFDIR: C:/namazu/etc/namazu
    LIBDIR: C:/namazu/share/namazu/pl
    FILTERDIR: C:/namazu/share/namazu/filter
    TEMPLATEDIR: C:/namazu/share/namazu/template
    対応メディアタイプ:
      application/excel
      application/ichitaro4
      application/ichitaro5
      application/ichitaro6
      application/ichitaro7
      application/msword
      application/powerpoint
      application/rtf
      application/x-gzip
      application/x-js-taro
      message/news
      message/rfc822
      text/hnf
      text/html
      text/html; x-type=mhonarc
      text/plain
      text/plain; x-type=rfc
      text/x-hdml
    

  4. インデックスを作成するためのコマンド mknmz の設定ファイルmknmzrcを編集する。

    C:\namazu\etc\namazu\mknmzrc が設定ファイルである。
    コメントアウトを外し修正した部分を下記に示す。
    $HTML_SUFFIX = "html?|[ps]html|html\\.[a-z]{2}";
    $ALLOW_FILE =	".*\\.(?:$HTML_SUFFIX)|.*\\.txt" . # HTML, plain text
     		"|.*\\.doc|.*\\.xls|.*\\.ppt" .	   # Word, Excel, PowerPoint
    $DENY_FILE = ".*\\.(gif|png|jpg|jpeg)|.*\\.tar\\.gz|core|.*\\.bak|.*~|\\..*|\x23.*";
    $REMAIN_HEADER = "From|Date|Message-ID";
    $SEARCH_FIELD = "message-id|subject|from|date|uri|newsgroups|to|summary|size";
    $NON_SEPARATION_ELEMENTS = 'A|TT|CODE|SAMP|KBD|VAR|B|STRONG|I|EM|CITE|FONT|U|'.
                           'STRIKE|BIG|SMALL|DFN|ABBR|ACRONYM|Q|SUB|SUP|SPAN|BDO';
    $ON_MEMORY_MAX   = 5000000;
    $FILE_SIZE_MAX   = 2000000;
    $TEXT_SIZE_MAX   =  600000;
    $WORD_LENG_MAX   = 128;
    %Weight = 
        (
         'html' => {
             'title'  => 16,
             'h1'     => 8,
             'h2'     => 7,
             'h3'     => 6,
             'h4'     => 5,
             'h5'     => 4,
             'h6'     => 3,
             'a'      => 4,
             'strong' => 2,
             'em'     => 2,
             'kbd'    => 2,
             'samp'   => 2,
             'var'    => 2,
             'code'   => 2,
             'cite'   => 2,
             'abbr'   => 2,
             'acronym'=> 2,
             'dfn'    => 2,
         },
         'metakey' => 32, # for 
         'headers' => 8,  # for Mail/News' headers
    );
    $INVALID_LENG = 128;
    $MAX_FIELD_LENGTH = 200;
    

  5. インデックスを作成する。

    mknmzを実行することでインデックスが作成される。
    hoge ユーザのマイドキュメントフォルダを検索対象にするなら、下記のようになる。
    > mknmz -a -O C:\namazu\var\namazu\index "C:\Documents and Settings\hoge\My Documents"
    

  6. マイドキュメントフォルダに、hoge と書いたテキストファイルを作成し、hogeを検索してみよう。
    > namazu hoge
    検索結果
    
    参考ヒット数:  [ hoge: 1 ]
    
    検索式にマッチする 1 個の文書が見つかりました。
    
    1. test.txt (スコア: 2)
    著者: 不明
    日付: Sun, 04 Jan 2004 22:48:11
    hoge
    /C|/Documents and Settings/hoge/My Documents/test.txt (6 bytes)
    
    
    
    現在のリスト: 1 - 1
    
    
    このように表示されれば検索できている。

Tips
インデックス作成時は多くのメモリを必要とする。検索対象のファイルが多い場合、"Out of memory!"で止まってしまう場合がある。その時の対処として、--checkpoint オプションを使用する回避策がある。
Namazu tips


2.PDF検索用のフィルタをインストールする


せっかくだからPDFファイルも検索対象にしよう。
  1. Xpdfのインストール Xpdf から

    xpdf-2.03-win32.zip、xpdf-japanese.tar.gz をダウンロードしてインストールする。

  2. xpdf-2.03-win32.zip を解凍する。解凍先はここでは、C:\xpdf とする。

  3. xpdf-japanese.tar.gz を解凍する。解凍先はここでは、C:\xpdf\japanese とする。

  4. C:\xpdf にある sample-xpdfrc をコピーして xpdfrc のファイル名で保存する。

  5. C:\xpdf\xpdf-japanese ディレクトリにある add-to-xpdfrc の中身を先ほど作った xpdfrc の末尾にコピーする。
    /usr/local/share/xpdf/japanese/ を C:\xpdf\japanese\ に書き換える。

  6. xpdfrc の textEncoding のコメントアウトをはずして、UTF-8 から Shift-JIS に書き換える。

  7. コントロールパネル → システム → 詳細 → 環境変数 の設定で システム環境変数の Path に C:\xpdf を追加する。
    コマンドプロンプトから pdftotext と入力してパラメータ一覧が出れば問題ない。
    日本語がOKになっているかどうかは、日本語のPDFファイルを用意して
    コマンドプロンプトにて
    pdftotext -enc Shift-JIS 日本語.pdf test.txt
    と入力して、test.txt が出来るかどうか確認しよう。

  8. 設定の確認 コマンドプロンプトにて mknmz -C を入力すると application/pdf が追加されているはずだ。これでPDFファイルを検索対象に出来た。

    上記のフィルタを使用する場合、mknmzrcの$ALLOW_FILEのコメントを外す。
                   "|.*\\.pdf" .                      # PDF
    


3.search-s for Namazuのインストール


Namazu 検索するためだけに、Apache をインストールするのも手間がかかるし、常時起動させておくのもメモリが勿体無いので、Namazu 検索アプリケーションをインストールしよう。

search-s for Namazu から srchs092.exe をダウンロードしてインストールする。
インデックスを作成してあれば、ファイルに対しての検索が出来るようになる。








オープンソース 検索エンジン Namazu


ウイルス対策ソフト メニュー

ESET Smart Security

シマンテック ノートン

ウイルスバスター

マカフィー

NOD32

ウイルスセキュリティZERO

Copyright(c) 1999-2017 ITNAVI.com サイト運営者情報