y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

HyperEstraierでXMLファイルを検索する

XMLを検索したい理由:
1.定型情報(RDBMS)や文書プロパティに格納されたデータの意味を保持したまま、全文検索を行いたい。
→将来、セマンティックWebのデータに流用するためには、属性データを分離、加工可能な状態で保持したい。(フリースタイルのテキストやHTMLデータに劣化させたくない。)
→検索キーワードを埋め込み、関連検索、再検索のキーワードをリンクしたい。

2.文書タイプ毎に見た目をカスタマイズしたい(XSLTCSS
→写真、図面データならサムネールを使ったアルバム表示
→報告書体裁

3.バイナリファイルのコンテナが必要
→写真データ、図面データなどがレコードと1対多の関係を持っている状態で、属性の全文検索を掛けたい。
→古文書の写真データに、現代文の読み下し文のXMLを付け、現代文で検索した結果が、古文書のイメージで参照できるようにしたい。

4.条件によってJavascriptのプログラムを起動したい
→写真データが複数含まれるレコードでlightboxを使ったパラパラめくり機能の提供
→日付データにリンクを生成し、年表の該当箇所を表示する

手順:
0.XML文書定義をする
→文書型定義の名称でXSLTを参照するようにしておく。
例:

1.XSLTを作成する
 例:photo.xsl
 div要素をきちんと定義しておく。 
 外部cssを参照するようにしておく。
 外部jsを参照するようにしておく。

2.RDBMSやファイルプロパティからXMLデータを書き出す
 UTF-8で書き出すこと。

3.HyperEstraierのインデックスを生成する
estcmd.exe gather -cl -fx .html,.htm,.xml,.txt T@estxfilt -fz -il ja -pc CP932 -sd -cm -kn 32 -um -aa @genre file d:\index\data d:\data\

4.XMLの検索結果を堪能する