User guide
The translation of this page isn't yet complete. Until it is, unfinished parts use the English original.

# Зміст

Attributes and Queries 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.
The index is part of the filesystem and is kept for every volume/partition separately.

## Indexing commands in Terminal

There are several commands to manage the index:

- lsindex - Displays the indexed attributes on the current volume/partition.
  These are the attributes that are indexed by default:

     ~ ->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 - Adds an attribute to the index of a volume/partition.

    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

Only new files with that attribute come automatically into the index!
Existing files have to be added manually by copying them and deleting the originals after that. Alternatively you can use the command reindex.

- reindex - Puts the attributes of existing files into the newly created index of a volume/partition.

    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

- rmindex - Removes an attribute from the index of a volume/partition.

    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.