Indice

Gli Attributi e le Interrogazioni sono fra le caratteristiche principali di Haiku. Mentre gli attributi sono utili di per se in quanto permettono di visualizzare delle informazioni aggiuntive, per poter effettuare delle query c'è bisogno che gli attributi vengano indicizzati. Essi vengono inseriti su una tabella di ricerca, che a sua volta consente di eseguire delle query velocissime.
L'indice è parte del filesystem ed è conservato su ogni volume e su ogni partizione separatamente.

Comandi di indicizzazione dal Terminale

Ci sono numerosi comandi per gestire l'indice:

 ~ ->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 
Usage: mkindex [options] <attribute> 
Creates a new index for the specified attribute. 
 
  -d, --volume=PATH     a path on the volume to which the index will be added, 
                        defaults to current volume. 
  -t, --type=TYPE       the type of the attribute being indexed.  One of "int", 
                        "llong", "string", "float", or "double". 
                        Defaults to "string". 
      --copy-from       path to volume to copy the indexes from. 
  -v, --verbose         print information about the index being created 

Verranno automaticamente indicizzati solo i nuovi file con questo attributo.
I file esistenti devono essere aggiunti manualmente copiandoli ed eliminando gli originali, altrimenti si può usare il comando reindex.

Usage: reindex [-rvf] attr <list of filenames and/or directories> 
  -r    enter directories recursively
  -v    verbose output
  -f    create/update all indices from the source volume,
        "attr" is the path to the source volume

Usage: rmindex [OPTION]... INDEX_NAME 
 
Removes the index named INDEX_NAME from a disk volume.  Once this has been 
done, it will no longer be possible to use the query system to search for 
files with the INDEX_NAME attribute. 
 
  -d, --volume=PATH     a path on the volume from which the index will be 
                         removed 
  -h, --help            display this help and exit 
  -p, --pattern         INDEX_NAME is a pattern 
  -v, --verbose         print information about the index being removed 
 
INDEX_NAME is the name of a file attribute. 
 
If no volume is specified, the volume of the current directory is assumed.