Last Update: "2007/05/11 12:20:58 makoto"

textproc

hyperestraier

Hyper Estraier は 全文検索の一つです。
cd /usr/pkgsrc cd textproc/hyperestraier sudo make package
しておきます。
Project Home
http://hyperestraier.sourceforge.net/
Document
http://hyperestraier.sourceforge.net/intro-ja.html
最初に使うもの: 例えば、estcmd gather で索引を作って、estcmd search で検索します。
estcmd gather 索引を作成
estcmd search 検索
~/Mail の下の全ての文書 (メール) から索引を作って、それを /export/he/casket に保存するには 例えば次のように入力します。
cd /export/he estcmd gather -fe -xh -il -ja -sd casket ~/Mail
もし 11 万通くらいあると、次のように終了します。
... estcmd: INFO: 1128029 (/amd/u/home/makoto/Mail/webcount/999): registered estcmd: INFO: 1128030 (/amd/u/home/makoto/Mail/zip/elmo-archive.lzh): registered estcmd: INFO: 1128031 (/amd/u/home/makoto/Mail/zip/elmo-archive.zip): registered estcmd: INFO: 1128032 (/amd/u/home/makoto/Mail/zip/old-ham.lzh): registered estcmd: INFO: flushing index words: name=casket dnum=1128032 wnum=16446376 fsiz=5000296848 crnum=7907 csiz=1069813 dknum=0 estcmd: INFO: closing: name=casket dnum=1128032 wnum=16446765 fsiz=5000437768 crnum=0 csiz=0 dknum=0 estcmd: INFO: finished successfully: elapsed time: 10h 58m 49s ttyq4:makoto@bologna 2:28:10/070410(/export/he)>
ttypd:makoto@bologna 9:50:45/070410(~)> estcmd search 'unsupported type 6' /export/hyperestraier/casket estcmd: ERROR: unsupported type 6: I/O problem
検索の結果の一覧を表示するだけなら、次のようにします。
ttyq0:makoto@bologna 10:07:04/070410(~)> estcmd search -vu /export/hyperestraier/casket 'hoge' --------[4C5F5B2B4EE3B5C0]-------- VERSION 1.0 NODE local HIT 3408 HINT#1 hoge 3408 TIME 0.010232 DOCNUM 1128032 WORDNUM 16446765 VIEW URI --------[4C5F5B2B4EE3B5C0]-------- 408535 file:///amd/u/home/makoto/Mail/ml/PHP-users/15543 641024 file:///amd/u/home/makoto/Mail/ml/mew/7403 641025 file:///amd/u/home/makoto/Mail/ml/mew/7404 619626 file:///amd/u/home/makoto/Mail/ml/mew/10371 646139 file:///amd/u/home/makoto/Mail/ml/mjjp/1106 678258 file:///amd/u/home/makoto/Mail/ml/net-abuse/1314 425509 file:///amd/u/home/makoto/Mail/ml/PHP-users/9139 475365 file:///amd/u/home/makoto/Mail/ml/fedora-jp/3029 647159 file:///amd/u/home/makoto/Mail/ml/mjjp/994 549962 file:///amd/u/home/makoto/Mail/ml/hns-users/302 --------[4C5F5B2B4EE3B5C0]--------:END ttyq0:makoto@bologna 10:07:08/070410(~)>

更新

最初に作った時に使った操作と同じ、つまり次のようにしてもいいの ですが、
cd /export/he estcmd gather -fe -xh -il -ja -sd casket ~/Mail
次のように -sd -cm を付けると差分登録をしてくれるので、早く済みます。
cd /export/he estcmd gather -cl -il ja -sd -cm casket ~/Mail
ここで使った選択の説明
-fe処理対象の全てのファイルを文書ドラフトとして扱う
-xh1,000,000件以上の文書を登録することを想定して索引を作成
-il ja文字コードの判定で優先される言語を指定
-sdファイルの更新日時を文書の属性として追加
-cm文書の属性の更新日時がファイルの更新日時より古い場合にのみ登録

異常停止

estcmd gather の実行中に 計算機が何か別の原因で停止してしまった後など、次のように言われることがあります。
estcmd: ERROR: casket: database problem
その時には、
estcmd repair -rst casket
として修復しておきます。