6. The method recited in claim 1, wherein evaluating the predicates further comprises: dynamically monitoring the evaluation of each predicate; assigning an evaluation cost to each predicate based upon the monitoring, wherein the cost of a cheap predicate requires less evaluation time and the cost of an expensive predicate requires more evaluation time; and evaluating the cheap predicates before the expensive predicates.
6. The method recited in claim 1, wherein evaluating the predicates further comprises: dynamically monitoring the evaluation of each predicate; assigning an evaluation cost to each predicate based upon the monitoring, wherein the cost of a cheap predicate requires less evaluation time and the cost of an expensive predicate requires more evaluation time; and evaluating the cheap predicates before the expensive predicates. 7. The method recited in claim 6, wherein evaluating a predicate against a data item further comprises: accessing an index for the data items, the data items having contents and the index comprising a list of the contents; and evaluating a predicate against the list of the contents.