インデックス
属性とクエリは 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" のいずれか 1 つ。 標準では "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 はファイル属性の名前です。 ボリュームが指定されていない場合、現在のディレクトリのボリュームが対象になります。