A method of time-efficiently providing a trie which stores keys of a database index for querying a database involving more than one data item, comprising the steps of: obtaining representations of two or more higher-order input tries; evaluating at least parts of a higher-order resulting trie, the higher-order resulting trie being a combination, using a logical operation, of the higher-order input tries; and providing as an output a representation of the resulting trie, the set or a subset of the keys and/or other data items associated with the nodes of the resulting trie, or a set of keys or values derived from keys associated with nodes of the resulting trie; wherein the representation of at least one of the higher-order input tries is provided as an output of a lower-order combination operator performing the steps of: obtaining representations of two or more lower-order input tries, each lower-order input trie having a plurality of nodes; at least partially evaluating a lower-order resulting trie, the lower-order resulting trie being a combination, using a lower-order logical operation being different from the logical operation, of the lower-order input tries; and providing as an output the representation of the lower-order resulting trie; wherein at least parts of the lower-order resulting trie are evaluated during the step of evaluating at least parts of the higher-order resulting trie; wherein parts of the higher-order resulting trie and parts of the lower-order resulting trie are evaluated in an interleaved manner; and wherein at least some of the parts of the lower-order resulting trie which are not required for the evaluating at least parts of the higher-order resulting trie are not evaluated, and only those parts of the lower-order resulting trie are evaluated which are required for the evaluating at least parts of the higher-order resulting trie. obtaining representations of two or more higher-order input tries; evaluating at least parts of a higher-order resulting trie, the higher-order resulting trie being a combination, using a logical operation, of the higher-order input tries; and providing as an output a representation of the resulting trie, the set or a subset of the keys and/or other data items associated with the nodes of the resulting trie, or a set of keys or values derived from keys associated with nodes of the resulting trie; wherein the representation of at least one of the higher-order input tries is provided as an output of a lower-order combination operator performing the steps of: obtaining representations of two or more lower-order input tries, each lower-order input trie having a plurality of nodes; at least partially evaluating a lower-order resulting trie, the lower-order resulting trie being a combination, using a lower-order logical operation being different from the logical operation, of the lower-order input tries; and providing as an output the representation of the lower-order resulting trie; obtaining representations of two or more lower-order input tries, each lower-order input trie having a plurality of nodes; at least partially evaluating a lower-order resulting trie, the lower-order resulting trie being a combination, using a lower-order logical operation being different from the logical operation, of the lower-order input tries; and providing as an output the representation of the lower-order resulting trie; wherein at least parts of the lower-order resulting trie are evaluated during the step of evaluating at least parts of the higher-order resulting trie; wherein parts of the higher-order resulting trie and parts of the lower-order resulting trie are evaluated in an interleaved manner; and wherein at least some of the parts of the lower-order resulting trie which are not required for the evaluating at least parts of the higher-order resulting trie are not evaluated, and only those parts of the lower-order resulting trie are evaluated which are required for the evaluating at least parts of the higher-order resulting trie.