This [[Module Library|XQuery Module]] provides functions for displaying information stored in the database index structures.
For functions that use the indexes to return nodes see [[Database_Module#Value_Indexes|Value Indexes]] in the [[Database Module]] and {{Function|Full-Text|ft:search}} in the [[Full-Text Module]].
=Conventions=
All functions and errors in this module are assigned to the <code><nowiki>http://basex.org/modules/index</nowiki></code> namespace, which is statically bound to the <code>{{Code|index</code> }} prefix.<br/>All errors are assigned to the <code>http://basex.org/errors</code> namespace, which is statically bound to the <code>bxerr</code> prefix.
=Functions=
==index:facets==
{|width='100%'|-valign="top"| width='90120' | '''SignaturesSignature'''|{{Code|<bpre>index:facets</b>( $db as item()) as xs:string}}<br/>{{Code|<b>index:facets</b>($db as item(), $type as xs:string := ()) as xs:string}}</pre>|-valign="top"
|'''Summary'''
|Returns information about possible all facets and facet values of the [[Database Module#Database Nodesdatabase {{Code|database node]] <code>$db</code> }} in document structure format.<br/>If {{Code|$type}} is specified as {{Code|flat}}, the function returns this information in a flat summarized version. The returned data is derived from the [[Indexes#Path Index|Path Index]].|- valign="top"|'''Errors'''|{{Error|db:get|Database Module#Errors}} The addressed database does not exist or could not be opened.|-valign="top"
|'''Examples'''
|
==index:texts==
{|width='100%'|-valign="top"| width='90120' | '''SignaturesSignature'''|{{Code|<bpre>index:texts</b>( $db as item()) as element(value)*}}<br/>{{Code|<b>indexxs:texts</b>(string, $db prefix as itemxs:string := (), $prefix ascending as xs:stringboolean? := false()) as element(value)*}}</pre>|-valign="top"
|'''Summary'''
|Returns all strings stored in the text index of the [[Database ModuleIndexes#Database NodesText Index|database nodeText Index]] <code>of the database {{Code|$db</code>}}, along with their number of occurrences.<br/>If {{Code|$prefix}} is specified, the returned nodes entries will be refined to the strings ones starting with that prefix.<br/>If {{Code|$prefix}} and {{Code|$ascending}} are specified, all nodes will be returned after or before the specified entry.|-valign="top"
|'''Errors'''
|'''[[{{Error|db:get|Database Module#Errors}} The addressed database does not exist or could not be opened.<br/>{{Error|db:no-index|BXDB0004]]''' is raised if Database Module#Errors}} the text index is not available.
|}
==index:attributes==
{|width='100%'|-valign="top"| width='90120' | '''SignaturesSignature'''|{{Code|<bpre>index:attributes</b>( $db as item()) as element(value)*}}<br/>{{Code|<b>indexxs:attributes</b>(string, $db prefix as itemxs:string := (), $prefix ascending as xs:stringboolean? := false()) as element(value)*}}</pre>|-valign="top"
|'''Summary'''
|Returns all strings stored in the attribute index of the [[Database ModuleIndexes#Database NodesAttribute Index|database nodeAttribute Index]] <code>of the database {{Code|$db</code>}}, along with their number of occurrences.<br/>If {{Code|$prefix}} is specified, the returned nodes entries will be refined to the strings ones starting with that prefix.<br/>If {{Code|$prefix}} and {{Code|$ascending}} are specified, all nodes will be returned after or before the specified start entry.|-valign="top"
|'''Errors'''
|{{Error|db:get|Database Module#Errors}} The addressed database does not exist or could not be opened.<br/>{{Error|db:no-index|Database Module#Errors}} the index is not available.|} ==index:tokens== {| width='100%'|- valign="top"| width='120' | '''Signature'''|<pre>index:tokens( $db as xs:string) as element(value)*</pre>|- valign="top"|'''Summary'''|Returns all strings stored in the [[Database ModuleIndexes#ErrorsToken Index|BXDB0004Token Index]]of the database {{Code|$db}}, along with their number of occurrences.|- valign="top"|'''Errors'' is raised if '|{{Error|db:get|Database Module#Errors}} The addressed database does not exist or could not be opened.<br/>{{Error|db:no-index|Database Module#Errors}} the attribute index is not available.
|}
==index:element-names==
{|width='100%'|-valign="top"| width='90120' | '''SignaturesSignature'''|{{Code|<bpre>index:element-names</b>( $db as item()xs:string) as element(value)*}}</pre>|-valign="top"
|'''Summary'''
|Returns all element names stored in the index of the [[Database ModuleIndexes#Database NodesName Index|database nodeName Index]] <code>of the database {{Code|$db</code>}}, along with their number of occurrences.|- valign="top"|'''Errors'''|{{Error|db:get|Database Module#Errors}} The addressed database does not exist or could not be opened.
|}
==index:attribute-names==
{|width='100%'|-valign="top"| width='90120' | '''SignaturesSignature'''|{{Code|<bpre>index:attribute-names</b>( $db as item()xs:string) as element(value)*}}</pre>|-valign="top"
|'''Summary'''
|Returns all attribute names stored in the index of the [[Database ModuleIndexes#Database NodesName Index|database nodeName Index]] <code>of the database {{Code|$db</code>}}, along with their number of occurrences.|- valign="top"|'''Errors'''|{{Error|db:get|Database Module#Errors}} The addressed database does not exist or could not be opened.
|}
=Changelog=
The module was introduced with ;Version 8.4 * Added: {{Function||index:tokens}} ;Version7.7 * Updated: the functions no longer accept [[Database Module#Database Nodes|Database Nodes]] as reference. Instead, the name of a database must now be specified. ;Version 7.13 * Updated: {{Function||index:texts}}, {{Function||index:attributes}}: signature with three arguments added.
[[Category:XQuery]]The module was introduced with Version 7.1.