<ahref="attributes.html">Attributes</a> and <ahref="queries.html">Queries</a> are key features of Haiku. While attributes are useful on their own, to display additional information on a file, for a query on them, they need to be indexed. It puts them into a lookup table, which in turn makes queries lightning fast.<br>
The index is part of the filesystem and is kept for every volume/partition separately.
</p>
<br>
<h3>Indexing commands in Terminal</h3>
<p>There are several commands to manage the index:
<ul>
<li><b>lsindex</b> - Displays the indexed attributes on the current volume/partition.
<p>These are the attributes that are indexed by default:<br>
<pre>58 ~ ->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
</pre></p></li>
<li><b>mkindex</b> - Adds an attribute to the index of a volume/partition.
<pre>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
</pre>
<p><i><b>Note:</b> Only <b>new</b> files with that attribute come automatically into the index!</i><br>
Existing files have to be added manually by copying them and deleting the originals after that. Alternatively you can use the tool <ahref="http://www.bebits.com/app/2033"rel="nofollow">reindex</a>.
</p>
</li>
<li><b>rmindex</b> - Removes an attribute from the index of a volume/partition.
<pre>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.</pre>