インデックス

属性クエリは Haiku の重要な特徴です。属性はそれだけで便利ですが、クエリがファイルの追加情報を表示するためには、属性をインデックス化する必要があります。インデックスは属性をルックアップテーブルに置くので、クエリはきわめて高速になります。
インデックスはファイルシステムの一部であり、ボリューム / パーティションごとに別々に保存されます。

ターミナル内のインデックスコマンド

インデックス管理用コマンドがいくつかあります。

 ~ ->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 [オプション] <属性> 
指定された属性に新しいインデックスを作ります。
 
  -d, --volume=PATH     インデックスが追加されるボリュームのパス、
                        標準では現在のボリュームに追加されます。
  -t, --type=TYPE       インデックス化された属性の型  "int", 
                        "llong", "string", "float",  "double" のいずれか 1 つ。
                        標準では "string" 
      --copy-from      インデックスをコピーするボリュームへのパス
  -v, --verbose         作られているインデックスについての情報を表示します

指定された属性を持つファイルが新規に作成される場合にのみ、自動的にインデックスに追加されます!
既存のファイルは、手動でコピー後、元のファイルを消すことでインデックスに追加する必要があります。あるいは reindex コマンドも使えます。

使い方: reindex [-rvf] attr <ファイル名かディレクトリのリスト、またはその両方> 
  -r    再帰的にディレクトリを辿ります
  -v    詳細な出力
  -f    ソースとなるボリュームからすべてのインデックスを作って更新します
        "attr" はソースとなるボリュームへのパスです

使い方: rmindex [オプション]... INDEX_NAME 
 
ディスクボリュームから INDEX_NAME という名前のインデックスを削除します。
これを実行してしまうと、クエリシステムを使って INDEX_NAME 属性のファイルを探すことはできません。
 
  -d, --volume=PATH     インデックスを削除するボリュームのパス
  -h, --help            ヘルプを表示して終了します 
  -p, --pattern         INDEX_NAME がパターンである場合 
  -v, --verbose         削除されるインデックスの情報を表示します
 
INDEX_NAME はファイル属性の名前です。
 
ボリュームが指定されていない場合、現在のディレクトリのボリュームが対象になります。