proglog

主にプログラミングに関する断片的メモ

Meadow、Lookup、Hyper Estraier

全文検索システムをwindowsMeadowapacheで使う。
hΛlの使ってるアプリ関係のメモ(2007-04-29)によると、拡張ElispのLookupを使うらしい。

公式サイト 全文検索システム Hyper Estraierからwindowsバイナリパッケージ。

展開して"C:\tools\hyperestraier"にそのまま放り込む。
パスを通す。

MeadowにLookupの設定

about LookupにあるLookupのパッケージを、 Meadow/Emacs memo: Meadow で辞書を引こうに従ってインストール。
環境変数EMACSMeadowに設定済みなので、素のまま"./configure"、"make"してコピー。

"eblook"というのが必要らしいけど、それも同じサイトにある eblook 1.6.1+media - about Lookupwindowsバイナリを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がうまく効かないのでコマンド検索パスを追加。
ここでちょっとはまった。

使ってみる

  1. "C-x l"でLookup起動。
  2. カーソルをWORDNETの上においてret。
  3. "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"。
Apachehttpd.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 - 計算機と戯れる日々という技がある。