章立ては以下の通り。
【事前準備】
【STAND ALONE型で使う場合】
【P2P型で使う場合】
【CRAWLER型で使う場合】
============================================================
【事前準備】
◆ HyperEstraierのインストール
% wget http://hyperestraier.sourceforge.net/hyperestraier-1.4.13.tar.gz
% tar zxvf hyperestraier-1.4.13.tar.gz
% cd hyperestraier-1.4.13
% ./configure --prefix=/usr/local/hyperestraier-1.4.13
% make
% su -
# make install
# ln -s /usr/local/hyperestraier-1.4.13 /usr/local/hyperestraier
◆ 各種文書ファイル用フィルタのインストール
HyperEstraierの設定手順内でestfxmsotohtmlとestfxpdftohtmlというフィルタを利用する
まずはそのフィルタが動作するように、必要なパッケージをインストールする。
・ estfxmsotohtml : Word/Excel/PowerPointのファイルをHTML形式に変換する
・ estfxpdftohtml : PDFのファイルをHTML形式に変換する
各種コマンドをラッピングしているだけである (estfxmsotohtml ツール内 抜粋)
*.doc)
wvWare --charset=UTF-8 --nographics "$infile" 2> "/dev/null" | output
;;
*.xls)
xlhtml "$infile" 2> "/dev/null" | output
;;
*.ppt)
ppthtml "$infile" 2> "/dev/null" | output
;;
*)
printf '
!!! UNKNOWN FORMAT !!!
\n' | output
wvware(doc用)パッケージのインストール
# yum install wv
xlhtml(xls用)、ppthtml(ppt用)パッケージのインストール
# yum install xlhtml
xpdf(pdf用)パッケージのインストール
# yum install xpdf
【STAND ALONE型で使う場合】
◆ コンフィグ変更(最低限必要なところのみ)
% vi estseek.conf
replace: ^file:///var/search/local/casket/{{!}}http://192.168.3.3/search/result/
% vi /etc/httpd/conf/httpd.conf
Alias /search/result/ "/var/tmp/file/"
◆ 文書の登録
% export PATH=$PATH:/usr/local/hyperestraier/share/hyperestraier/filter
% estcmd gather -cl -cm -pc utf-8 -il ja -bc -sd /var/search/casket /var/tmp/search/
% estcmd gather -cl -fx ".doc,.xls,.ppt" "H@estfxmsotohtml" -fz -ic UTF-8 -sd -cm /var/search/local/casket /var/tmp/search/
% estcmd gather -cl -fx ".pdf" "H@estfxpdftohtml" -fz -ic UTF-8 -sd -cm /var/search/local/casket /var/tmp/search/
◆ 検索
・ CUIで検索する場合
% estcmd search -ic utf-8 -vh /var/www/html/estseek/casket 検索ワード
・ GUIでの検索
http://192.168.3.3/search/index.rb
◆ その他覚えておくと便利なコマンド
属性名とデータ型を指定
% estcmd create -attr @title str -attr @mdate seq -attr @size seq /var/search/local/casket
削除文書の反映
% estcmd purge -cl /var/search/local/casket
インデックスの最適化
% estcmd optimize /var/search/local/casket
【P2P型で使う場合】
◆ casketファイルの作成
% estmaster init /var/search/master
◆ コンフィグ変更(最低限必要なところのみ)
% vi /var/search/master/_conf
uireplace: ^file:///var/tmp/file/{{!}}http://192.168.3.3/search/result/
cachesize: 512
実メモリの搭載量が1GBならば、その半分くらいの容量のキャッシュを使うのが望ましい
◆ 起動と停止
% estmaster start /var/search/master
% estmaster stop /var/search/master
バックグラウンドで起動させたければ下記のようにする
% estmaster start -bg /var/search/master
◆ ノードの登録
・ GUIから登録する場合
http://192.168.3.3:1978/master_ui へアクセス
user : admin
password :admin
※iptablesを開放しておくこと
Manager Node として下記を登録
parent
child001
child002
・ CUIから登録する場合
% estcall raw -auth admin admin \
'http://localhost:1978/master?action=nodeadd&name=parent&label=PARENT'
% estcall raw -auth admin admin \
'http://localhost:1978/master?action=nodeadd&name=child001&label=CHILD001'
% estcall raw -auth admin admin \
'http://localhost:1978/master?action=nodeadd&name=child002&label=CHILD002'
◆ ノード間にリンクを張る
% estcall setlink -auth admin admin http://10.16.1.172:1978/node/parent \
http://10.16.1.172:1978/node/child001 CHILD001 10000
※親ノードから間違ってリンクを張ってしまった場合、信頼度を-1に変えてestcallすればよい
★P2P型ではなく、CROWLER型を利用する場合はここからの手順は不要である
◆ 文書の登録(手動)
% vi child001.est
@uri=data1
@title=title1_test
test1
% vi child002.est
@uri=data2
@title=title2_test
test2
% estcall put -auth admin admin http://192.168.3.3:1978/node/child001 child001.est estcall put -auth admin admin \ http://192.168.3.3:1978/node/child002 child002.est
◆ 文書の登録(がっつり1)
・ estmasterを起動させたままで登録可能な方法
% find /var/tmp/file -type f |
while read file
do
estcmd draft -fh -il ja $file |
estcall put -auth admin admin http://192.168.3.3:1978/node/child001
done
・ estmasterを停止させた状態で登録可能な方法
% export PATH=$PATH:/usr/local/hyperestraier/share/hyperestraier/filter
% estcmd gather -cl -cm -pc utf-8 -il ja -bc -sd /var/search/master/_node/child001 /var/tmp/search/
% estcmd gather -cl -fx ".doc,.xls,.ppt" "H@estfxmsotohtml" -fz -ic UTF-8 -sd -cm /var/search/master/_node/child001 /var/tmp/search/
% estcmd gather -cl -fx ".pdf" "H@estfxpdftohtml" -fz -ic UTF-8 -sd -cm /var/search/master/_node/child001 /var/tmp/search/
◆ 検索
・ GUIから検索する場合
下へアクセスし、キーワードを入力する
http://192.168.3.3:1978/node/parent/search_ui
・ CUIから検索する場合
% estcall search -dpt 1 http://192.168.3.3:1978/node/parent "hoge"
% estcall search http://192.168.3.3:1978/node/child001 "hoge"
% estcall search http://192.168.3.3:1978/node/child002 "hoge"
【CRAWLER型で使う場合】
◆ casketファイルの作成
% estwaver init /var/search/crawl/
◆ コンフィグ変更(最低限必要なところのみ)
% vi /var/search/crawl/_conf
seed: 1.5|http://hyperestraier.sourceforge.net/uguide-en.html
allowrx: ^http://[^/]*\.hyperestraier.sourceforge.net/
language: 1
textlimit: 40960
revisit: 1d
※再度URLを訪れるまでの期間の設定
ここでの設定時間以内にcrawlしても検索対象とならないので注意
0dにしたら毎回問い合わせる
nodeserv: 1|http://admin:admin@192.168.3.3:1978/node/child001
nodeserv: 2|http://admin:admin@192.168.3.3:1978/node/child002
※管理者ユーザを指定しないとnode側ではなく、crawler側に登録される
urlrule: \.doc${{!}}application/word
urlrule: \.xls${{!}}application/excel
urlrule: \.ppt${{!}}application/powerpoint
urlrule: \.pdf${{!}}application/pdf
typerule:^application/pdf${{!}}H@/usr/local/hyperestraier/share/hyperestraier/filter/estfxpdftohtml
typerule:^application/(word|excel|powerpoint)${{!}}H@/usr/local/hyperestraier/share/hyperestraier/filter/estfxmsotohtml
denyrx: \.(rtf|ps|eps|ai||sxw|sxc|sxi|xdw|jtd|oas|swf)$
◆ indexの登録
$ estwaver crawl -revcont /var/search/crawl
◆ 検索(nodeservを指定していないとき)
$ estcmd search -vs /var/search/crawl/_index 'hoge'