A method, comprising: identifying, by a computing device, characteristics of a relational database; generating, by the computing device, tokens (156, 504) representing the characteristics of the relational database; assigning, by the computing device, security bitmaps to the tokens, the security bitmaps including different bits associated with different user groups; generating, by the computing device, indexes (400, 500) containing the tokens, the indexes having hierarchical tree structures with roots associated with common characters in the tokens and branches extending from the roots for different following characters in the tokens; assigning a branch security bitmap to each branch of the indexes based on the security bitmaps assigned to the tokens in the respective branch, wherein a higher level branch security bitmap combines lower branch security bitmaps (542E, 542F); receiving, by the computing device, a search request from a user interface containing a search term; comparing, by the computing device, the search term with the tokens in the hierarchical tree structures of the indexes; identifying, by the computing device, a set of tokens associated with the search term for displaying in the user interface based on the comparison of the tokens in the hierarchical tree structures of the indexes with the search term and based on a comparison of a user security bitmap assigned to a user of the user interface with the branch security bitmaps for the branches in the indexes containing the tokens, wherein a branch is not parsed down based on the comparison; generating, by the computing device, a structured query based on the set of the tokens associated with the search term; and using, by the computing device, the structured query to retrieve data in the relational database. identifying, by a computing device, characteristics of a relational database; generating, by the computing device, tokens (156, 504) representing the characteristics of the relational database; assigning, by the computing device, security bitmaps to the tokens, the security bitmaps including different bits associated with different user groups; generating, by the computing device, indexes (400, 500) containing the tokens, the indexes having hierarchical tree structures with roots associated with common characters in the tokens and branches extending from the roots for different following characters in the tokens; assigning a branch security bitmap to each branch of the indexes based on the security bitmaps assigned to the tokens in the respective branch, wherein a higher level branch security bitmap combines lower branch security bitmaps (542E, 542F); receiving, by the computing device, a search request from a user interface containing a search term; comparing, by the computing device, the search term with the tokens in the hierarchical tree structures of the indexes; identifying, by the computing device, a set of tokens associated with the search term for displaying in the user interface based on the comparison of the tokens in the hierarchical tree structures of the indexes with the search term and based on a comparison of a user security bitmap assigned to a user of the user interface with the branch security bitmaps for the branches in the indexes containing the tokens, wherein a branch is not parsed down based on the comparison; generating, by the computing device, a structured query based on the set of the tokens associated with the search term; and using, by the computing device, the structured query to retrieve data in the relational database.