Method for searching within elements of a hierarchically structured database, wherein each of the elements has hierarchically structured nodes for defining attributes and respective sub-attributes of said element, and wherein one or more nodes of the searched element must fulfill two or more search conditions (c 0, c i,..), the method comprising the following steps: a. selecting a plurality of nodes and assigning a unique identifier to each of the selected nodes; b. creating a reference index that allows to derive for each unique identifier of a selected node the corresponding element of the database; c. creating search indexes (31, 32) which correlate the values of nodes, which can be the subject of the respective search conditions (c 0,c i,...), with the unique identifiers of ancestors of these nodes; d. investigating the search index corresponding to the first search condition (c 0) to retrieve a set L of unique identifiers of ancestor nodes for nodes which fulfill the first search condition (c 0); e. for each further search condition (c i) of the two or more search conditions (c 0,c i,...): - investigating the search index corresponding to the further search condition (c i) to retrieve a further set E i of unique identifiers of ancestor nodes for nodes which fulfill the respective search condition; and - intersecting the set L with the further set E i and assigning the result to the set L of unique identifiers, thereby obtaining L = L ∩ E i; and if there are no further search conditions (c i) to be satisfied: f. retrieving the searched elements based on the set L of unique identifiers and the reference index. a. selecting a plurality of nodes and assigning a unique identifier to each of the selected nodes; b. creating a reference index that allows to derive for each unique identifier of a selected node the corresponding element of the database; c. creating search indexes (31, 32) which correlate the values of nodes, which can be the subject of the respective search conditions (c 0,c i,...), with the unique identifiers of ancestors of these nodes; d. investigating the search index corresponding to the first search condition (c 0) to retrieve a set L of unique identifiers of ancestor nodes for nodes which fulfill the first search condition (c 0); e. for each further search condition (c i) of the two or more search conditions (c 0,c i,...): - investigating the search index corresponding to the further search condition (c i) to retrieve a further set E i of unique identifiers of ancestor nodes for nodes which fulfill the respective search condition; and - intersecting the set L with the further set E i and assigning the result to the set L of unique identifiers, thereby obtaining L = L ∩ E i; and if there are no further search conditions (c i) to be satisfied: - investigating the search index corresponding to the further search condition (c i) to retrieve a further set E i of unique identifiers of ancestor nodes for nodes which fulfill the respective search condition; and - intersecting the set L with the further set E i and assigning the result to the set L of unique identifiers, thereby obtaining L = L ∩ E i; f. retrieving the searched elements based on the set L of unique identifiers and the reference index.