21. The apparatus recited in claim 20, wherein the processor is further capable of executing instructions to: access an index for the data items, the data items having contents and the index comprising a list of the contents; and evaluate a predicate against the list of the contents.
20. The apparatus recited in claim 15, wherein the processor is further capable of executing instructions to: dynamically monitor the evaluation of each predicate; assign 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 evaluate the cheap predicates before the expensive predicates.