Meadow、Lookup、Hyper Estraier
全文検索システムをwindows、Meadow、apacheで使う。
hΛlの使ってるアプリ関係のメモ(2007-04-29)によると、拡張ElispのLookupを使うらしい。
公式サイト 全文検索システム Hyper Estraierからwindowsバイナリパッケージ。
展開して"C:\tools\hyperestraier"にそのまま放り込む。
パスを通す。
MeadowにLookupの設定
about LookupにあるLookupのパッケージを、 Meadow/Emacs memo: Meadow で辞書を引こうに従ってインストール。
環境変数EMACSはMeadowに設定済みなので、素のまま"./configure"、"make"してコピー。
"eblook"というのが必要らしいけど、それも同じサイトにある eblook 1.6.1+media - about LookupのwindowsバイナリをDLして"eblook.exe"にリネームして"c:\Meadow\bin"に入れる。
続けて、動作確認のためにも、 FPWBOOKからWordNet(r) 1.6をもらって、"(path to home)\dic\lookup\WORDNET"に展開。
該当部分の".emacs"は、
(autoload 'lookup "lookup" nil t) (autoload 'lookup-region "lookup" nil t) (autoload 'lookup-pattern "lookup" nil t) (define-key ctl-x-map "l" 'lookup) (define-key ctl-x-map "y" 'lookup-region) (define-key ctl-x-map "\C-y" 'lookup-pattern) (setq lookup-search-agents '( (ndest "http://athlon64.fsij.org/~mikio/wikipedia/estfraud.cgi/casket") (ndeb "(full-path to home)/dic/lookup/WORDNET") )) (setq ndest-process-coding-system-for-write 'shift_jis) (setq exec-path (append (list "C:/Meadow/bin" "C:/tools/hyperestraier") exec-path))
一応shift_jis。
"ndest"とか"ndeb"とかいうのは検索エージェントというらしい。
要は、検索対象のデータによる違いを吸収させるアダプタか。
その対応を記述。
なんでか、環境変数PATHがうまく効かないのでコマンド検索パスを追加。
ここでちょっとはまった。
使ってみる
- "C-x l"でLookup起動。
- カーソルをWORDNETの上においてret。
- "f"で検索語、例えば"think"を入力しret。
OK。
"?"でヘルプ。
このWordNetって面白いな
Hyper Estraierのインディックス
Introduction of Hyper Estraier Version 1 (Japanese)の"インデックスの作成"にある感じで、gaucheのマニュアルのインディックスを作ってみる。
cd d:\gauche estcmd gather -fh -il ja -sd casket D:\gauche\ref
"-fh"は対象データがhtmlの時とか。
例の通り、ディレクトリcasketが対象ディレクトリより上に来るか、別の枝に位置するように注意したほうが良さそう。
出来上がった"casket"ディレクトリを".emacs"に登録。
(setq lookup-search-agents '( (ndest "http://athlon64.fsij.org/~mikio/wikipedia/estfraud.cgi/casket") (ndeb "(full-path to home)/dic/lookup/WORDNET") (ndest "(full-path to manual-parent)/casket") ))
Hyper Estraierのインディックスに対する検索エージェントがndest、ということになるらしい。
で、前述の手順で検索を試して、結果が表示された。
検索用CGIスクリプト
参考 Hyper Estraier を Windows + Apache2 にインストール
estseek.confの書き方。
対象データが"D:/web/data"
インディックスが"D:\web\casket"。
Apacheのhttpd.confで
Alias /webdata "D:/web/data"
となっているケース
replace: ^file:///D|/web/data/{{!}}http://localhost/webdata/ replace: ^http://localhost/webdata/\|{{!}}
なぜか"|"という文字が検索結果のURIに入ってくるので、置き換える。
さらに"http:〜"が二重になるので削除。
{{!}}が{{{!}}とかになってると、特にエラーメッセージは出ないけど、微妙に変な変換が起こる。
あと、Hyper Estraierパッケージ同梱の
pthreadGC2.dll libiconv-2.dll estraier.dll jestraier.dll mgwz.dll qdbm.dll regex.dll zlib.dll
は、estseek.cgiと同じディレクトリにコピーした。
システムディレクトリに入れておいたほうがいいかな。
ただ、Gaucheのリファレンスについては firefoxのキーワードを用いてgaucheマニュアルの該当エントリにジャンプするtips - 計算機と戯れる日々という技がある。