gdestraier HOWTO


Table of Contents

はじめに
これは何?
できる事
将来できるようにしたい事
サポートしている文書タイプと拡張子
スクリーンショット
Version 0.2.0
Version 0.1.5
Version 0.1.4
Version 0.1.2
Version 0.1.1
Version 0.1.0
インストール
ダウンロード
必要なもの
コンパイル
使いかた
初期設定
インデックスの登録と構築
インデックスの構築
D-BUSサービス
コマンドラインインターフェース
著作権
免責
リンク/連絡先等

はじめに

これは何?

gdestraier は、全文検索エンジン Hyper Estraier を利用したGnome環境で動作する文書検索クライアントです。

できる事

  • 作成済みのインデックスを登録(複数)して、検索式で検索する

  • GUIを使ってインデックスの構築できる

  • 検索した文書を、GnomeのMIME型ハンドラを使って開ける

  • D-BUS シグナルをトリガーとして検索を実行できる

  • 検索した文書をDrag&Dropで他アプリへドロップできる

将来できるようにしたい事

  • 検索結果をファイルマネージャのように使う

  • ファイル更新を監視してインデックスをインクリメンタル更新

  • Bonoboコントロールになる

サポートしている文書タイプと拡張子

  • ディレクトリ

  • 文書ドラフト - .est .estraier

  • プレーンテキスト - .txt .text .asc .ascii

  • HTML/XHTML - .html .htm .xhtml .xht

  • ID3タグ - .mp3 .mpeg3

  • PDF - .pdf

  • Microsoft Excel - .xls .xlb .xlt

  • Microsoft PowerPoint - .ppt .pps

スクリーンショット

インストール

ダウンロード

gdestraierの最新版は以下の場所で見付ける事ができます。

開発版(GNU Arch リポジトリ)

http://www.mitsuki.no-ip.com/~seagull/arch-archives/2004/の gdestraier--seagull--0.1 が現在の先端です。

archzoomで閲覧する事もできます。

Ver.0.2.6

gdestraier-0.2.6.tar.gz / gdestraier-0.2.6.tar.bz2 .debパッケージ( Sarge, Sid ) (2005-11-25)

  • 代替設定ファイルのパスを指定するコマンドラインオプション --user-configを追加。

  • ドキュメントをインストールしないようにした。

  • xmltoが無い時にはドキュメントを構築しないようにした。

  • Debianパッケージを作れるようにした。

  • [bugfix] Sargeでコンパイルエラーになる所を修正。

Ver.0.2.5

gdestraier-0.2.5.tar.gz / gdestraier-0.2.5.tar.bz2 (2005-11-16)

  • Hyper Estraier のC++ラッパをインストールしないようにした。

  • インデックスのプロパティで、ファイルシステムのエンコーディングはもう必要無いので除去。

  • コードのクリーンアップ

  • [bugfix] --disable-dbusを指定するとpkg-config用の初期化が行われない現象に対処。

  • [bugfix] インデックスの編集でファイルタイプを明示すると @type 属性が設定されないバグを修正

  • [bugfix] ローカルインデックスが開けなかった時に例外で落ちるのを修正。

Ver.0.2.4

gdestraier-0.2.4.tar.gz / gdestraier-0.2.4.tar.bz2 (2005-11-12)

  • 検索結果を他のアプリにDrag and Dropできるようになった。

  • グループ化せずにフラット表示するモードを追加。

  • 終了時にウィンドウの位置とサイズを記録して復帰するようにした。

  • Microsoft ExcelとMicrosoft Power Pointのフィルタを追加。

  • ディレクトリもインデックスして探せるようにした。

  • gatherのファイル列挙に、gnome_vfsを使うようにした。関連して_lpath等ローカルファイルシステムでしか意味の無い属性を削除。

  • インデックスの属性として、タイトルとURIを本文に含めるか(フレーズ検索対象にするか)を選択できるようにした。

  • 本文に含めるURIを%xx形式でなく、デコードした状態で記録するようにした。

  • HTMLの解析で、段落が細切れになってしまっていたのを修正。ほぼestcmd互換になったはず。

  • --gatherコマンドラインオプションを追加。

  • [bugfix] --disable-dbusの時にコンパイルが通らなかったのを修正。

  • [bugfix] フィルタがサイズ0のファイルを考えていなかったのを修正。

Ver.0.2.3

gdestraier-0.2.3.tar.gz / gdestraier-0.2.3.tar.bz2 (2005-11-05)

  • ローカルインデックスからpurgeする時、1文書削除した段階で停止するバグを修正。0.2.2で混入していた。

  • D-BUS経由で検索できるようになった。

  • 要約の生成を抑止できるようにした。インデックス毎に指定できるので、遠いインデックスは抑止しておくと吉。

Ver.0.2.2

gdestraier-0.2.2.tar.gz / gdestraier-0.2.2.tar.bz2 (2005-11-03)

  • gnomeのproxy設定に対応

  • サムネイルをバックグラウンドで読み込むようにした

  • ソート機能を実装

  • MIME型の説明文が取り出せない時、MIME型名そのものを表示するようにした

  • gather時、拡張子でタイプの判別が付かない場合、gnomeへ問い合わせたMIME型を元に判別するようにした

  • Hyper Estraier 1.0.3へ追従

  • ノードに対してgather/purgeできるようにした

  • 検索に要した時間をステータスバーに表示するようにした

  • 文書のスコアも表示するようにした

  • ノードから取得する最大件数を設定できるようにした

  • @type属性にcharset=とかが付いている場合があるので、セミコロンより前のみを使うようにした

  • 文書の更新日時の表記を、ロケールに合わせて正規化するようにした

  • D-BUSサポートの開始。まだ動かないので、configureオプションに--disable-dbusを指定してください。

  • その他のバグ修正とクリーンアップ

Ver.0.2.1

gdestraier-0.2.1.tar.gz / gdestraier-0.2.1.tar.bz2

  • ~/.gdestraierrc ファイル読み込みのバグ修正

  • さらにDebian sarge対応を進める為、新しいWidgetやAPIを使わないようにした

  • Fix crash About dialog

  • 文書タイトルとパスで探せないファイルがあったのを修正。

  • 未知のファイルでもとりあえずファイル名で探せるようにした。

  • インデックス構築時、purgeすると全部消えるバグを修正。0.2.0で混入していた。

  • UTF8ロケール以外でクラッシュしたり化けたりするのをいくらか解消。

Ver.0.2.0

gdestraier-0.2.0.tar.gz / gdestraier-0.2.0.tar.bz2

  • インデックス構築ダイアログのバグ修正。

  • サムネイルとアイコンを表示するようにした。

  • インデックス構築時、ローカルパスからURIへの変換にGnome-VFSを使うようにした。

  • Debianパッケージメンテナンスの悪い外部ライブラリと決別。gnomemm, gnome-vfsmm, gnomeuimm, glademm は不要になりました。

  • ノードAPI越しの検索に対応。

  • コンテキストメニューで、デフォルト以外のアプリケーションからも開けるようになった。

  • ツールバーで検索対象インデックスを選べるようにした。

Ver.0.1.6

gdestraier-0.1.6.tar.gz / gdestraier-0.1.6.tar.bz2

  • インデックス構築関係で cleanup。

  • インデックス構築のpurgeとoptimizeに、estcmdを使わないようにした。

  • estcmd extkeysを呼び出す為のオプションを、インデックス構築ダイアログに追加。

  • QuickBuildボタンを追加。QuickBuildはgatherのみをボタン1つで実行する機能です。

  • エンコーディングの一覧を内蔵して、iconv呼び出しを止めた。

  • ID3v2タグフィルタを追加

  • PDFフィルタを追加。PATHの通っている位置にpdftotextが必要。

  • バグ修正

Ver.0.1.5

gdestraier-0.1.5.tar.gz / gdestraier-0.1.5.tar.bz2

  • 設定ダイアログを開く時、安全の為に検索結果を消去するようにした。

  • 設定ダイアログのバグ修正。

  • キーワード毎の色分けを実装。

  • Document update

  • 文書タイトルが無い場合に、ファイル名を使うようにした。

  • 検索結果のグループ化に対応。

  • バグ修正

Ver.0.1.4

gdestraier-0.1.4.tar.gz / gdestraier-0.1.4.tar.bz2

  • コンテキストメニュー関係のコードを整理。

  • 結果一覧にPango markupを使ってみた。GtkHTMLとかGecko使った方がいろいろできるけど、 estseekと変わらなくなっちゃうので、とりあえずは採用しない方向で。

  • 文書タイトルの置換ルールを追加。Webサイト等ではサイトの名称が固定で入っている場合があるので、 不要なら消せるようにした。でも、これってインデクサ側でなんとかすべき問題だよね。

  • キーワードを含まないゴミ文書を、検索結果から除去するようにした。

  • 色とフォントの設定を追加。

  • 検索式を、簡便法を使うようにした。

  • バグ修正

Ver.0.1.3

gdestraier-0.1.3.tar.gz / gdestraier-0.1.3.tar.bz2

  • Aboutダイアログを追加

  • gettextサポート

  • estcmdの-cs(キャッシュサイズ)オプションに対応

  • Fix index build dialog crash.

  • 文字エンコーディングの一覧をiconvから取得するようにした

  • ~/.gdestraierrcパーサのバグ修正

  • 文書snippetをとりあえず作ってみた。UIはそのうち練り直す方向で。

  • URI置換を実装。boost::regexでやってるんで、perl互換の$1,$2とか使える。

Ver.0.1.2

gdestraier-0.1.2.tar.gz / gdestraier-0.1.2.tar.bz2

  • コンテキストメニューをサポート(リストの右クリックだけ)

  • MIME型ハンドラを使ったアプリケーションの起動をサポート(デフォルトアプリケーションだけ。 事情)

  • インデックス編集ダイアログを2回閉じないと閉じてくれないバグを修正

  • その他の細かいバグ修正

Ver.0.1.1

gdestraier-0.1.1.tar.gz / gdestraier-0.1.1.tar.bz2

  • 不足していたファイルがあったのを修正

  • インデックスの構築をサポートした。

Ver.0.1.0

gdestraier-0.1.0.tar.gz / gdestraier-0.1.0.tar.bz2

  • 最初のリリース。とりあえず検索ができる。

必要なもの

gdestraierは外部ライブラリとして以下のものを必要とします。

Hyper Estraier >= 1.0.4
QDBM >= 1.8.31
libglade-2.0 >= 2.4.1
gtkmm-2.4 >= 2.4.1
libgnome-2.0 >= 2.8.1
libgnomeui-2.0 >= 2.8.1
gnome-vfs-2.0 >= 2.8.4
gconf-2.0 >= 2.8.1
eel-2.0 >= 2.8.2
libxml++-2.6 >= 2.6.1
boost
boost_regex
boost_time
libid3 >= 3.8.1 (オプション)
dbug-glib-1 >= 0.50 (オプション)
pthread

その他、ビルドツールとしてxmltoが必要です。コンパイラはg++-4.0で開発しています。 古いg++でも大丈夫だと思いますが、g++3とg++4の両方をインストールしているような環境では、 ABIの整合性に注意してください。

コンパイル

いつもどおり、./configure;make;make installでOKです。 configure時には以下のオプションが使えます。

--debug

デバッグモードでビルドします。

--without-id3

id3v2タグフィルタを組み込みません。 id3v2タグフィルタを組み込む場合には、libid3がインストールされている必要があります。

--disable-dbus

D-BUSサポートを無効にします。

使いかた

初期設定

gdestraier を始めてインストールした場合、外部コマンドのパスを登録する必要があります。

まず、設定ダイアログを開き( 編集->設定 )ます。 「外部コマンド」タブを開くと、estcmdのパスを設定するボタンがあるので、 インストールされている estcmdのパスを正しく設定してください。

設定後は、いったん gdestraierを終了させてください。

インデックスの登録と構築

検索を始める前に、検索するインデックスを登録する必要があります。 インデックスはgdestraierで作成/更新する事もできますし、 すでに estcmdで作成されているインデックスを登録して使う事もできます。

先ほどと同様に、設定ダイアログを開き( 編集->設定 )、「インデックス」タブで新規 ボタンを押して新しいインデックスを登録する為の「インデックス編集」ダイアログを開きます。

基本 - 説明

インデックスの名前です。インデックスには自由な名前を設定でき、 検索結果の文書がどこから来たものかを識別するのに使います。

基本 - 場所

ローカルインデックスか、ノードを使うかを指定します。

基本 - パスまたはURL

ローカルインデックスのディレクトリか、ノードのURL(http://foo/node/baz/)を指定します。 ローカルインデックスを使う場合には、 /var/cache/estraier/インデックス名/または ~/var/cache/estraier/インデックス名/がお薦めです。

基本 - 認証

ノードを使う場合のユーザ名とパスワードを設定します。両方空の場合には認証を試みずに、 匿名でアクセスします。

基本 - 有効

チェックを付けて、このインデックスを実際の検索対象とする事を指定します。 一時的に使いたくないけど、設定だけは登録したままにしておきたい時に使います。

gather - 文書のディレクトリ

検索したい実際の文書が入ったディレクトリを指定します。 通常、ディレクトリは再帰的に検索されるので一番上のディレクトリを指定します。

空にしておくと、ファイルシステムとインデックスを結びつけないという意味になり、 そのインデックスは構築の対象から自動的に除外されます。

gather - クィック構築有効

チェックを付けるとクィックビルドの対象となり、ツールバーのボタンで簡易構築できるようになります。

簡易構築はボタン一発でgatherを行う事ができる機能ですが、存在しなくなった文書の削除を行いません。

gather - 種類

文書ディレクトリ中に含まれる文書の種類を固定する時に使用します。通常は「自動」を指定してください。

gdestraierは、ファイルの拡張子とMIME型を元にテキストフィルタを切替えますが、 ディレクトリ中に特定の種類のファイルしか存在せず、かつgdestraierが種類の判定を間違える時に、 強制的に種類を固定する事ができます。

gather - 言語/エンコーディング

文書の言語と文字エンコーディングを指定します。言語はエンコーディングの自動認識に使います。 通常は、言語を「日本語」又は「英語」にして、エンコーディングを「自動」にすればいいでしょう。

gather - 全ての言語でN-gramを使う

チェックを付けると、そのインデックスでは言語にかかわらず常にN-gram方式でインデックスを作成します。

このオプションは、ローカルに新規にインデックスを作るとき以外は効果を持ちません。

gather - タイトルを本文に含める/URIを本文に含める

チェックを付けると、文書をインデックスする際に文書のタイトルとURIもインデックスします。

チェックを外すとタイトルやURIの一部のテキストを使って検索する事ができなくなるのでお薦めしませんが、 必要が無い場合に外しておくとgatherのパフォーマンス向上とインデックスサイズの軽減が期待できます。

置換 - URI

インデックスに登録されている文書のURIと、実際にアクセスしたいURIが異なる場合、 ここで置換ルールを設定します。正規表現中で括弧を使うと、 置換文字列側では $1,$2という形で参照できます。

置換 - タイトル

Webサイト等、複数の細かいファイルからなる文書を登録した場合、 そのタイトルにはサイトの名前等の固定の部分文字列が含まれている事がよくあります。

これを取り除いて表示したい場合には、ここで置換ルールを設定します。

制限 - 探索深度

ノードの場合に、探索するノード深度を指定します。 詳しくは、Hyper EstraierのP2Pガイドを参照してください。

制限 - 最大文書数

このインデックスから検索する最大の文書数を指定します。

ノードの場合、ここで指定した値よりもサーバで設定されている最大数が優先されます。

制限 - 要約を使う

文書の要約を取り出すかどうかを指定します。要約を取り出さないようにすると、若干パフォーマンスが上がり、 ノードの場合には転送量も削減できます。

インデックスの構築

検索を始める前に、インデックスを構築しなくてはいけません。 先の手順で、すでに存在するインデックスを登録した場合には、このステップは必要ありません。

インデックスの構築ダイアログ( 編集->インデックス構築 )を開き、構築対象のインデックスと構築オプションを指定してから実行 ボタンを押すとインデックスが作成/更新されます。

上書きされた領域を回収

文書が更新されていた時、インデックスDBの領域を回収するかどうかを指定します。

削除された領域を回収

ファイルが削除された時、インデックスDBの領域を回収するかどうかを指定します。

存在しない文書を削除

インデックス中に登録されたファイルが実際に存在するかどうか検査して、 存在しない文書を削除します。

データベースを最適化

インデックスデータベースを最適化します。

gatherしない

新規/更新文書の検出をスキップします。 削除/最適化処理だけを行いたい時に使います。

キーワードを生成

インデックスからキーワードを抽出して、キーワードデータベースを更新します。

キャッシュサイズ

インデックス構築時に使用するキャッシュサイズをMB単位で指定します。

構築ログ

作業進捗に合わせてログが表示されます。

D-BUSサービス

0.2.3より、D-BUS経由で検索を実行する事ができます。

残念ながらまだクライアントツールがありませんが、D-BUSに付属のツールを使ってリクエストを発行できます。 (うまく使えばURIハンドラとして登録できそうな気がしますが、まだうまくいってません)

dbus-send --session --type=method_call --dest=com.no_ip.mitsuki.gdestraier /com/no_ip/mitsuki/gdestraier com.no_ip.mitsuki.gdestraier.searcher.search string:'検索式'

その内、アプリケーションから文書の更新通知をドキュメントドラフトといっしょに受け取って、インデックス更新できるようになると楽しいかも。

コマンドラインインターフェース

--gather インデックス名

指定した名前のインデックスについて文書の登録と更新を行い、その後に終了します。

著作権

gdestraierはseagull が作りました。 ライセンスはGPL2です

Hyper Estraierは平林さんの著作物です。

免責

gdestraierは開発途上のアプリケーションです、 ある日いきなりあなたのファイルを破損するような事が無いともいえません。ってか、たぶんあるでしょう。 くれぐれもバックアップを怠る事無く、自己責任でご使用になられるようお願いします。

リンク/連絡先等

パッチ/バグ報告等は ML へお願いします。