>> HOME >> CentOS 4 MENU >> Namazu (PDF、Excel、PowerPoint、Word)文書を検索させる方法
全文検索システム(Namazu) で、PDF文書(.pdf)、Excel文書(.xls)、PowerPoint文書(.ppt)、Word文書(.doc)の中の文字を検索できるようにします。
全文検索システム(Namazu) のインストール・基本的な設定については『全文検索システム (Namazu)』を参照してください。

前提としては同様に・・・
検索対象のWebコンテンツは /var/www/html/
検索用インデックスファイルの格納場所は /usr/local/var/namazu/index/www

1. PDF 文書を検索できるようにする
1 ) PDF 文書用のフィルタ xpdf インストール
2 ) PDF 文書用のフィルタ設定ファイル /etc/xpdfrc 編集
3 ) PDF 文書からテキストを抽出してみる
2. Word 文書を検索できるようにする
1 ) Word 文書用のフィルタ wvWare 必須ライブラリ glib2-devel インストール
2 ) Word 文書用のフィルタ wvWare 必須ライブラリ libgsf-devel インストール
3 ) Word 文書用のフィルタ wvWare インストール
3. Excel (PowerPoint) 文書を検索できるようにする
1 ) Excel (PowerPoint) 文書用のフィルタ xlHtml インストール
4. Namazu の設定
1 ) mknmz スクリプト設定ファイル の編集
5. 各種フィルタの確認
1 ) インデックスファイルの作成
2 ) 検索の試行
1. PDF 文書を検索できるようにする
1 ) PDF 文書用のフィルタ xpdf インストール
[root@linux ~]# yum -y install xpdf 
Repository dag is listed more than once in the configuration
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package xpdf.i386 1:3.00-11.12 set to be updated
--> Running transaction check
--> Processing Dependency: urw-fonts for package: xpdf
--> Processing Dependency: libXm.so.3 for package: xpdf
--> Processing Dependency: libXp.so.6 for package: xpdf
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Package urw-fonts.noarch 0:2.2-6.1 set to be updated
---> Package xorg-x11-deprecated-libs.i386 0:6.8.2-1.EL.13.25.1 set to be updated
---> Package openmotif.i386 0:2.2.3-10.RHEL4.1 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 xpdf                    i386       1:3.00-11.12     base              4.0 M
Installing for dependencies:
 openmotif               i386       2.2.3-10.RHEL4.1  update            1.3 M
 urw-fonts               noarch     2.2-6.1          base              4.5 M
 xorg-x11-deprecated-libs  i386       6.8.2-1.EL.13.25.1  update            264 k

Transaction Summary
=============================================================================
Install      4 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 10 M
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: xorg-x11-deprecated-libs     ######################### [1/4]
  Installing: openmotif                    ######################### [2/4]
  Installing: urw-fonts                    ######################### [3/4]
  Installing: xpdf                         ######################### [4/4]

Installed: xpdf.i386 1:3.00-11.12
Dependency Installed: openmotif.i386 0:2.2.3-10.RHEL4.1 urw-fonts.noarch 0:2.2-6.1 xorg-x11-deprecated-libs.i386
0:6.8.2-1.EL.13.25.1
Complete!
2 ) PDF 文書用のフィルタ設定ファイル /etc/xpdfrc 編集
[root@linux ~]# vi /etc/xpdfrc 

  :
  :
#----- text output control

# Choose a text encoding for copy-and-paste and for pdftotext output.
# The Latin1, ASCII7, and UTF-8 encodings are built into Xpdf.  Other
# encodings are available in the language support packages.

#textEncoding           UTF-8
# 追加
textEncoding           EUC-JP

  :
  :
3 ) PDF 文書からテキストを抽出してみる
PDF 文書からテキストを抽出するには、pdftotext コマンドを使用します。
[root@linux ~]# pdftotext hogehoge.pdf hogehoge.txt 
2. Word 文書を検索できるようにする
1 ) Word 文書用のフィルタ wvWare 必須ライブラリ glib2-devel インストール
[root@linux ~]# yum -y install glib2-devel 
Repository dag is listed more than once in the configuration
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for glib2-devel to pack into transaction set.
glib2-devel-2.4.7-1.i386. 100% |=========================|  32 kB    00:00
---> Package glib2-devel.i386 0:2.4.7-1 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 glib2-devel             i386       2.4.7-1          base              936 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 936 k
Downloading Packages:
(1/1): glib2-devel-2.4.7- 100% |=========================| 936 kB    00:02
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: glib2-devel                  ######################### [1/1]

Installed: glib2-devel.i386 0:2.4.7-1
Complete!
2 ) Word 文書用のフィルタ wvWare 必須ライブラリ libgsf-devel インストール
[root@linux ~]# yum -y install libgsf-devel 
Repository dag is listed more than once in the configuration
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for libgsf-devel to pack into transaction set.
libgsf-devel-1.10.1-1.i38 100% |=========================| 8.5 kB    00:00
---> Package libgsf-devel.i386 0:1.10.1-1 set to be updated
--> Running transaction check
--> Processing Dependency: gnome-vfs2-devel for package: libgsf-devel
--> Processing Dependency: libxml2-devel for package: libgsf-devel
--> Processing Dependency: libgsf = 1.10.1-1 for package: libgsf-devel
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for libxml2-devel to pack into transaction set.
libxml2-devel-2.6.16-6.i3 100% |=========================|  42 kB    00:00
---> Package libxml2-devel.i386 0:2.6.16-6 set to be updated
---> Downloading header for gnome-vfs2-devel to pack into transaction set.
gnome-vfs2-devel-2.8.2-8. 100% |=========================|  28 kB    00:00
---> Package gnome-vfs2-devel.i386 0:2.8.2-8.2 set to be updated
---> Downloading header for libgsf to pack into transaction set.
libgsf-1.10.1-1.i386.rpm  100% |=========================| 4.7 kB    00:00
---> Package libgsf.i386 0:1.10.1-1 set to be updated
--> Running transaction check
--> Processing Dependency: zlib-devel for package: libxml2-devel
--> Processing Dependency: libbonobo-devel >= 2.2.0 for package: gnome-vfs2-devel
--> Processing Dependency: GConf2-devel >= 1.2.0 for package: gnome-vfs2-devel
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for GConf2-devel to pack into transaction set.
GConf2-devel-2.8.1-1.i386 100% |=========================|  12 kB    00:00
---> Package GConf2-devel.i386 0:2.8.1-1 set to be updated
---> Downloading header for zlib-devel to pack into transaction set.
zlib-devel-1.2.1.2-1.2.i3 100% |=========================| 6.2 kB    00:00
---> Package zlib-devel.i386 0:1.2.1.2-1.2 set to be updated
---> Downloading header for libbonobo-devel to pack into transaction set.
libbonobo-devel-2.8.0-2.i 100% |=========================|  25 kB    00:00
---> Package libbonobo-devel.i386 0:2.8.0-2 set to be updated
--> Running transaction check
--> Processing Dependency: ORBit2-devel >= 2.8.0 for package: GConf2-devel
--> Processing Dependency: ORBit2-devel >= 2.7.5 for package: libbonobo-devel
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for ORBit2-devel to pack into transaction set.
ORBit2-devel-2.12.0-3.i38 100% |=========================|  17 kB    00:00
---> Package ORBit2-devel.i386 0:2.12.0-3 set to be updated
--> Running transaction check
--> Processing Dependency: libIDL-devel >= 0.8.2-1 for package: ORBit2-devel
--> Processing Dependency: indent for package: ORBit2-devel
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for libIDL-devel to pack into transaction set.
libIDL-devel-0.8.4-1.i386 100% |=========================| 4.8 kB    00:00
---> Package libIDL-devel.i386 0:0.8.4-1 set to be updated
---> Downloading header for indent to pack into transaction set.
indent-2.2.9-6.i386.rpm   100% |=========================| 7.4 kB    00:00
---> Package indent.i386 0:2.2.9-6 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 libgsf-devel            i386       1.10.1-1         base               87 k
Installing for dependencies:
 GConf2-devel            i386       2.8.1-1          base              174 k
 ORBit2-devel            i386       2.12.0-3         base              357 k
 gnome-vfs2-devel        i386       2.8.2-8.2        base              356 k
 indent                  i386       2.2.9-6          base               90 k
 libIDL-devel            i386       0.8.4-1          base               85 k
 libbonobo-devel         i386       2.8.0-2          base              659 k
 libgsf                  i386       1.10.1-1         base               75 k
 libxml2-devel           i386       2.6.16-6         base              1.7 M
 zlib-devel              i386       1.2.1.2-1.2      base               89 k

Transaction Summary
=============================================================================
Install     10 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 3.6 M
Downloading Packages:
(1/10): libgsf-devel-1.10 100% |=========================|  87 kB    00:00
(2/10): libxml2-devel-2.6 100% |=========================| 1.7 MB    00:05
(3/10): GConf2-devel-2.8. 100% |=========================| 174 kB    00:00
(4/10): libgsf-1.10.1-1.i 100% |=========================|  75 kB    00:00
(5/10): ORBit2-devel-2.12 100% |=========================| 357 kB    00:01
(6/10): libIDL-devel-0.8. 100% |=========================|  85 kB    00:00
(7/10): zlib-devel-1.2.1. 100% |=========================|  89 kB    00:00
(8/10): gnome-vfs2-devel- 100% |=========================| 356 kB    00:01
(9/10): indent-2.2.9-6.i3 100% |=========================|  90 kB    00:00
(10/10): libbonobo-devel- 100% |=========================| 659 kB    00:02
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: indent                       ####################### [ 1/10]
  Installing: zlib-devel                   ####################### [ 2/10]
  Installing: libxml2-devel                ####################### [ 3/10]
  Installing: libIDL-devel                 ####################### [ 4/10]
  Installing: ORBit2-devel                 ####################### [ 5/10]
  Installing: GConf2-devel                 ####################### [ 6/10]
  Installing: libbonobo-devel              ####################### [ 7/10]
  Installing: gnome-vfs2-devel             ####################### [ 8/10]
  Installing: libgsf                       ####################### [ 9/10]
  Installing: libgsf-devel                 ####################### [10/10]

Installed: libgsf-devel.i386 0:1.10.1-1
Dependency Installed: GConf2-devel.i386 0:2.8.1-1 ORBit2-devel.i386 0:2.12.0-3 gnome-vfs2-devel.i386 0:2.8.2-8.2
indent.i386 0:2.2.9-6 libIDL-devel.i386 0:0.8.4-1 libbonobo-devel.i386 0:2.8.0-2 libgsf.i386 0:1.10.1-1
libxml2-devel.i386 0:2.6.16-6 zlib-devel.i386 0:1.2.1.2-1.2
Complete!
3 ) Word 文書用のフィルタ wvWare インストール
http://prdownloads.sourceforge.net/wvware から、wvWare のソースファイルをダウンロードします。
現時点(2006/08/11)で最新は 1.2.1 ですが、libgsf が古いなどの理由で 1.0.3 しか make できませんでした。
[root@linux ~]# wget http://jaist.dl.sourceforge.net/sourceforge/wvware/wv-1.0.3.tar.gz 
wget http://jaist.dl.sourceforge.net/sourceforge/wvware/wv-1.0.3.tar.gz
--00:41:48--  http://jaist.dl.sourceforge.net/sourceforge/wvware/wv-1.0.3.tar.gz
           => `wv-1.0.3.tar.gz'
jaist.dl.sourceforge.net をDNSに問いあわせています... 150.65.7.130
jaist.dl.sourceforge.net|150.65.7.130|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 857,412 (837K) [application/x-gzip]

100%[============================================================================>] 857,412      314.11K/s

00:41:51 (313.25 KB/s) - `wv-1.0.3.tar.gz' を保存しました [857412/857412]
ダウンロードした wv-1.0.3.tar.gz を展開して、コンパイル、インストールします。
# ダウンロードした wv-1.0.3.tar.gz を展開
[root@linux ~]# tar zxvf wv-1.0.3.tar.gz 

# 展開先ディレクトリへ移動
[root@linux ~]# cd wv-1.0.3 

# コンパイル
[root@linux wv-1.0.3]# ./configure && make && make install 

# 展開元ディレクトリへ戻る
[root@linux wv-1.0.3]# cd 

# 必要なくなったファイルなどを削除
[root@linux ~]# rm -rf wv-1.0.3 
[root@linux ~]# rm -f wv-1.0.3.tar.gz 
3. Excel (PowerPoint) 文書を検索できるようにする
1 ) Excel (PowerPoint) 文書用のフィルタ xlHtml インストール
http://chicago.sourceforge.net/xlhtml/ から、xlHtml のソースファイルをダウンロードします。
[root@linux ~]# wget http://jaist.dl.sourceforge.net/sourceforge/chicago/xlhtml-0.5.tgz 
wget http://jaist.dl.sourceforge.net/sourceforge/chicago/xlhtml-0.5.tgz
--10:30:32--  http://jaist.dl.sourceforge.net/sourceforge/chicago/xlhtml-0.5.tgz
           => `xlhtml-0.5.tgz'
jaist.dl.sourceforge.net をDNSに問いあわせています... 150.65.7.130
jaist.dl.sourceforge.net|150.65.7.130|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 271,045 (265K) [application/x-gzip]

100%[============================================================================>] 271,045      277.48K/s

10:30:33 (276.94 KB/s) - `xlhtml-0.5.tgz' を保存しました [271045/271045]
ダウンロードした xlhtml-0.5.tgz を展開して、コンパイル、インストールします。
# ダウンロードした xlhtml-0.5.tgz を展開
[root@linux ~]# tar zxvf xlhtml-0.5.tgz 

# 展開先ディレクトリへ移動
[root@linux ~]# cd xlhtml-0.5 

# コンパイル
[root@linux xlhtml-0.5]# ./configure && make && make install 

# 展開元ディレクトリへ戻る
[root@linux xlhtml-0.5]# cd 

# 必要なくなったファイルなどを削除
[root@linux ~]# rm -rf xlhtml-0.5 
[root@linux ~]# rm -f xlhtml-0.5.tgz 
4. Namazu の設定
1 ) mknmz スクリプト設定ファイル の編集
mknmz スクリプトは、検索を高速化する "インデックスファイル" を作成するコマンドです。
検索対象に PDF文書(.pdf)、Excel文書(.xls)、PowerPoint文書(.ppt)、Word文書(.doc) を追加します。
[root@linux ~]# vi /etc/namazu/mknmzrc 

  :
  :
#
# This pattern specifies file names which will be targeted.
# NOTE: It can be specified by --allow=regex option.
#       Do NOT use `$' or `^' anchors.
#       Case-insensitive.
#
# $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
#                 "|.*\\.vs[dst]|.*\\.v[dst]x" .     # Visio
#               "|.*\\.j[sabf]w|.*\\.jtd" .        # Ichitaro 4, 5, 6, 7, 8
#               "|.*\\.sx[widc]" .                 # OpenOffice Writer,Calc,Impress,Draw
#               "|.*\\.od[tspg]" .                 # OpenOffice2.0
#               "|.*\\.rtf" .                      # Rich Text Format
#               "|.*\\.hdml|.*\\.mht" .            # HDML MHTML
#               "|.*\\.mp3" .                      # MP3
#               "|.*\\.gnumeric" .                 # Gnumeric
#               "|.*\\.kwd|.*\\.ksp" .             # KWord, KSpread
#               "|.*\\.kpr|.*\\.flw" .             # KPresenter, Kivio
#               "|\\d+|[-\\w]+\\.[1-9n]";          # Mail/News, man
# 変更( "|.*\\.doc|.*\\.xls|.*\\.pp[st]|.*\\.pdf" を追加 )
$ALLOW_FILE = ".*\\.(?:$HTML_SUFFIX)|.*\\.doc|.*\\.xls|.*\\.pp[st]|.*\\.pdf";

  :
  :
5. 各種フィルタの確認
PDF文書(.pdf)、Excel文書(.xls)、PowerPoint文書(.ppt)、Word文書(.doc) をそれぞれ作成し、Namazu の検索対象ディレクトリ(/var/www/html/)に置きます。
1 ) インデックスファイルの作成
[root@linux ~]# mknmz /var/www/html -O /usr/local/var/namazu/index/www -K 
検索対象のファイルを調べています...
4個のファイルがインデックス作成の対象として見つかりました
1/4 - /var/www/html/excel.xls [application/excel]              # Excel文書のインデックスができている
2/4 - /var/www/html/pdf-file.pdf [application/pdf]             # PDF文書のインデックスができている
3/4 - /var/www/html/powerpoint.ppt [application/powerpoint]    # PowerPoint文書のインデックスができている
4/4 - /var/www/html/word.doc [application/msword]              # Word文書のインデックスができている
インデックスを書き出しています...
[追加]
日付:                Sat Jul 15 02:47:07 2006
追加された文書の数:  4
サイズ (bytes):      362,510
合計の文書数:        5
追加キーワード数:    1
合計キーワード数:    3,202
わかち書き:          module_kakasi -ieuc -oeuc -w
経過時間 (秒):       3
ファイル/秒:         1.33
システム:            linux
Perl:                5.008008

Namazu:              2.0.15
2 ) 検索の試行
[root@linux ~]# namazu 日本語 /usr/local/var/namazu/index/www 
検索結果

参考ヒット数:  [ 日本語: 5 ]

検索式にマッチする 5 個の文書が見つかりました。

1. Red Hat Enterprise Linux ES (v.4 for EM64T) Update 1 (スコア: 4)
著者: Linuxソフトウェア開発統括部
日付: Thu, 20 Oct 2005 22:28:26 +0900
TEST TEST 日本語全文検索システム なまず namazu 
http://mountainbigroad.jp/pdf-file.pdf (315,406 bytes)




2. powerpoint.ppt (スコア: 2)
著者: 不明
日付: Sat, 15 Jul 2006 02:37:58 +0900
TEST TEST 日本語全文検索システム なまず namazu Created with pptHtml
http://mountainbigroad.jp/powerpoint.ppt (9,216 bytes)




3. excel.xls (スコア: 2)
著者: 不明
日付: Sat, 15 Jul 2006 02:33:01 +0900
Sheet1 TEST 日本語全文検索システム なまず namazu
http://mountainbigroad.jp/excel.xls (13,824 bytes)




4. word.doc (スコア: 2)
著者: 不明
日付: Sat, 15 Jul 2006 02:32:34 +0900
TEST 日本語全文検索システム なまず namazu
http://mountainbigroad.jp/word.doc (24,064 bytes)




5. TEST (スコア: 2)
著者: 不明
日付: Sat, 15 Jul 2006 01:17:57 +0900
TEST 日本語全文検索システム なまず namazu
http://mountainbigroad.jp/index.html (254 bytes)




現在のリスト: 1 - 5