logo logo The Index
logo logo
  Welcome     Previous: File Attributes     Next: Queries  
 

The Index

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:

    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 
    

  • 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 
    
    

    Note: 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 tool reindex.

  • 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.
 
  Welcome     Previous: File Attributes     Next: Queries