実践Linux
CentOS5/6.5        CentOS5/6.5 目次へ  TOP(HOME)へ

namazuによる全文検索(CentOS5の場合)  2010年1月





namazu 2.0.20 (CentOS5環境)
Namazu を動作させるために最低でも以下のソフトウェアが必要です。
 ・Perl(5.004以降)
 ・File::MMagic  Namazu の配布には File::MMagic (1.27) が同梱されています。
日本語の文書を処理する場合には以下のソフトウェアが必要になります。
 ・nkf (2.07を推奨)
 ・KAKASI (2.3.0以降)もしくは ChaSen もしくは MeCab
 Perl 拡張モジュールを利用することもできます。
  ・NKF (2.07を推奨)
  ・Text::Kakasi もしくは Text::Chasen もしくは MeCab
 これらのソフトウェアは Namazu のインストール前にあらかじめインストールされている必要があります。

CentOS5でのインストール状況
 ・Perl 5.8.8がインストール済み
 ・File::MMagic なし
 ・nkf 2.0.7がインストール済み
 ・KAKASI なし
 確認 perl、nkfのバージョン # perl --version または # man perl等
     perlモジュールの場所 # perldoc -l File::MMagic
     kakasi # which kakasi等

●KAKASI 2.3.4 のインストール:
・解凍
 tarball を解凍したい場所に置いて、tar でアーカイブを解凍します。
 $ tar xvzf kakasi-2.3.4.tar.gz
・configure
 解凍したディレクトリに移動して、configure を実行します。
 $ cd kakasi-2.3.4
 $ ./configure
・make
コンパイルを行い、root でインストールを行います。
 $ make
 $ su
 # make install
エラーが発生しなければ、インストールは終了です。

●namazu 2.0.20のインストール
解凍 % gzip -dc namazu-2.0.20.tar.gz | tar xvf -
まず、File::MMagicのインストール
 % cd namazu-2.0.20/File-MMagic
 % perl Makefile.PL
 % make
 % su
 # make install
namazu本体のインストール
 % cd namazu-2.0.20
 % ./configure
 % make
 % su
 # make install


使用
●インデックスの作成
 インデックス用ディレクトリ/var/www/namazu_indexを作っておく。パーミションは755。
 /var/www/html以下のファイルを/var/www/namazu_indexディレクトリにインデックス作成
  # mknmz /var/www/html -O /var/www/namazu_index  (-O以下を明示しないと、カレントディレクトリに作成される)
 制限 /var/www/html/test1と/var/www/html/test2ディレクトリは除外する場合
  # mknmz "--exclude=/var/www/html/test1|/var/www/html/test2" /var/www/html -O /var/www/namazu_index
  --exclude=で2つ以上「|」でつないで指定するなど正規表現を使う場合は全体を「''」または「""」で囲ってやる。
  「|」の前後に空白を入れるとexcludeされないので注意。
 また、pdfファイルはこのままでは未対応。あとで設定。

●検索テスト
 インデックスが作成された/var/www/namazu_indexディレクトリで、
 # namazu 営業 .  営業という文字を検索

●cgiの設定
 namazu.cgiをさがす。 # find / -name namazu.cgi → /usr/local/libexec/namazu.cgi
 これを /var/www/cgi-bin/ にコピーする。
 次に、 /usr/local/etc/namazu/namazurc-sample を /var/www/cgi-bin/ に「.namazurc」名に直してコピー。
 /var/www/cgi-bin/.namazurcの編集
  Index /var/www/namazu_index
  Template /var/www/namazu_index
  Replace /var/www/html/ http://www.yam-web.net/
  Logging off または on
  Lang jp

●検索フォームの設定
 /var/www/html/search/ディレクトリを作っておく。パーミションは755。
 /var/www/namazu_index/よりNMZ.head.jaとNMZ.foot.jaを/var/www/html/search/ディレクトリにコピーして、
 # cat NMZ.head.ja NMZ.foot.ja > search.html  これで2つがくっついたsearch.htmlができる。
 search.htmlの編集  下の2カ所
  <form method=”get” action=”../../cgi-bin/namazu.cgi”>
  <a href=”../../cgi-bin/namazu.cgi”>[検索方法]</a>

●インデックスの更新
@ホームページを更新したときは、インデックスも刷新してやる必要がある。
 再度、以下を実行。
 # mknmz --exclude=/var/www/html/test1 /var/www/html -O /var/www/namazu_index
A/var/www/html/search/search.htmlの更新。
 文書数、キーワード数、更新日(これらは/var/www/namazu_index/NMZ.head.jaを見ればわかる)。


PDF 文書を検索できるようにする
http://www.foolabs.com/xpdf/download.htmlより以下のファイルをダウンロード。
 xpdf-3.02.tar.gz
 xpdf-3.02pl1.patch
 xpdf-3.02pl2.patch
 xpdf-3.02pl3.patch
 xpdf-3.02pl4.patch
 xpdf-japanese.tar.gz
同じフォルダにダウンロードしたとする。

XPDFのインストール(NamazuのPDFフィルタ用のモジュール)
 # tar zxvf xpdf-3.02.tar.gz
 # cd xpdf-3.02
 パッチをあてる。
 # patch -p1 < ../xpdf-3.02pl1.patch (-p1オプションについては下参照)
 # patch -p1 < ../xpdf-3.02pl2.patch
 # patch -p1 < ../xpdf-3.02pl3.patch
 # patch -p1 < ../xpdf-3.02pl4.patch
 インストール
 # ./configure
 # make
 # make install

インストール状況の確認
 # which pdftotext
  /usr/local/bin/pdftotext

日本語の Language Support Packages のインストール
 # tar zxvf xpdf-japanese.tar.gz
 # cd xpdf-japanese
 # mkdir -p /usr/local/share/xpdf/japanese
 # cp -R *.unicodeMap *.cidToUnicode CMap /usr/local/share/xpdf/japanese
 # cat add-to-xpdfrc >> /usr/local/etc/xpdfrc

patchの-p1オプションについて
 パッチファイルはどのディレクトリに対してパッチを当てるかという情報を持っています。
 パッチファイルの実体はテキストファイルですので、中身を見ると以下のように書いてある箇所があります。
 --- xpdf-3.02/xpdf/Stream.cc等
 # cd xpdf-3.02とディレクトリ移動してパッチを当てようとした場合、以下のようにコマンドを打ちます。
 # patch -p1 < ../xpdf-3.02pl1.patch
 ここで-p1としたのは、xpdf-3.02/xpdf/Stream.ccから1段分のディレクトリ指定を取り除くためです。
 (xpdf-3.02/を取り除いてxpdf/Stream.ccとしてパッチを適用することになります)



TOP(HOME)へ

目 次

特別企画
Raspberry Piで遊ぶ

HOME(全体のシステム構成&目次)

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ストリーミングサーバーRed5
ドメインの追加

CentOS5〜6
ネットワーク&ファイアウォール(iptables)
DNS(BIND)サーバー
DHCPサーバー
メールサーバー(基本)
メールサーバー/実際の運用
Webサーバー
  WebDAVによるファイル共有
  Webでファイルのやり取り
  アクセス解析ツールawstats
  namazuで全文検索
  WordPressブログサイト構築
  EC-CUBEショッピングサイト構築
FTPサーバー
ファイルサーバー・Samba
データベースpostgreSQL
  ExcelからpostgreSQLを操作
データベースMySQL
SSHサーバー
VNC
SSL/TLSを利用した暗号化通信
openVPN
ストリーミングサーバー
    C++ RTMP Server
    Helix server Basic
ドメインの追加
Xen・仮想化
特定ディレクトリに容量制限

SELinux
SELinux基本設定
新しいタイプとポリシー・モジュールを作成してみる
マクロを利用したteファイルの記述
新しいドメインを導入してみる

coLinux
Fedora11で試す

Cプログラミング目次
X11プログラム
サイエンス・プログラム

計測・プログラム
秋月電子のデーターロガーpico ADC-16
「今すぐ使えるパソコン計測USBマイコン基板」に付属のTRZ1102
センサーの使用例

Glade2/GTK+を使ってみる
テキスト・ビューで簡易エディター
ドローイングエリアで自動描画
放物線運動(pango、cairoも試してみる)
これらを、GTK+のみで書き出す

フォントについて
ネットワーク・プログラミング
postgreSQL接続
CGI
ファイル操作

●その他
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く