インデックス

属性クエリは 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" のうちのどれかひとつ。
                        標準では "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 はファイル属性の名前です。
 
もしボリュームが指定されなければ、現在のディレクトリのボリュームが対象になります。