インデックス
属性とクエリは Haiku の重要な特徴です。属性はそれだけで便利ですが、クエリが追加的なファイルの情報を表示するためには、属性をインデックス化する必要があります。インデックスは属性をルックアップテーブルに置くので、クエリはきわめて高速になります。
インデックスはファイルシステムの一部であり、ボリューム / パーティションごとに別々に保存されます。
ターミナルにおけるインデックスコマンド
インデックスを管理するためのコマンドがいくつかあります。
- lsindex - 現在のボリューム / パーティションに対するインデックス化された属性を表示します。
以下は標準でインデックス化されている属性です。
~ ->lsindex BEOS:APP_SIG MAIL:account MAIL:cc MAIL:chain MAIL:draft MAIL:flags MAIL:from MAIL:name MAIL:pending_chain MAIL:priority MAIL:reply MAIL:status MAIL:subject MAIL:thread MAIL:to MAIL:when META:address META:city META:company META:country META:email META:fax META:group META:hphone META:name META:nickname META:state META:url META:wphone META:zip _signature _status _trk/qrylastchange _trk/recentQuery be:deskbar_item_status last_modified name size
- mkindex - ボリューム / パーティションのインデックスに属性を追加します。
使い方: mkindex [オプション] <属性> 指定された属性に新しいインデックスを作ります。 -d, --volume=PATH インデックスが追加されるボリュームのパス、 標準では現在のボリュームに追加されます。 -t, --type=TYPE インデックス化された属性のタイプ "int", "llong", "string", "float", "double" のうちのどれかひとつ。 標準では "string" --copy-from インデックスをコピーするボリュームへのパス -v, --verbose 作られているインデックスについての情報を表示します
指定された属性を持ったファイルが新規に作成される場合にのみ、自動的にインデックスに追加されます!
既存のファイルは、コピーして、そのあと元のファイルを消すことによって手動で追加する必要があります。あるいは reindex コマンドを使うこともできます。
- reindex - ボリューム / パーティションの新たに作られたインデックスに既存のファイルの属性を追加します。
使い方: reindex [-rvf] attr <ファイル名 と/または ディレクトリのリスト> -r 再帰的にディレクトリを辿ります -v 詳細な出力 -f ソースとなるボリュームからすべてのインデックスを作って更新します "attr" はソースとなるボリュームへのパスです
- rmindex - ボリューム / パーティションのインデックスから属性を削除します。
使い方: rmindex [オプション]... INDEX_NAME ディスクボリュームから INDEX_NAME という名前のインデックスを削除します。 これを行ってしまうと、INDEX_NAME 属性のファイルを探すためにクエリシステムを使うことはできません。 -d, --volume=PATH インデックスを削除するボリュームのパス -h, --help ヘルプを表示して終了します -p, --pattern INDEX_NAME がパターンである場合 -v, --verbose 削除されるインデックスについての情報を表示します INDEX_NAME はファイル属性の名前です。 もしボリュームが指定されなければ、現在のディレクトリのボリュームが対象になります。