1. A method of searching in a second dataset using a query from a first dataset, the method comprising: receiving a first query using the first dataset, the first query being generated using a first collation associated with the first dataset, the first collation having a case sensitivity flag, an accent use sensitivity flag, a character width sensitivity flag, and a kana sensitivity flag for a first human language; rewriting the first query to form a second query, the second query comprising a second collation and a residue predicate, the second collation comprising a superset of the first collation, the second collation of the second query being broader than the first collation of the first query and being insensitive with respect to at least one of case, accent use, character width, and kana, the second collation encompassing the first collation, the second collation having an associated index for the second collation, and the residue predicate comprising an original search term from the first query, wherein the residue predicate is selected to ensure that a set of results returned in response to the second query satisfies the case sensitivity flag, the accent use sensitivity flag, the character width sensitivity flag, and the kana sensitivity flag of the first collation; optimizing the second query by choosing an index plan that targets an index associated with multiple human languages that is useful in searching across a multiplicity of human language collations; executing the second query to search the first dataset; and returning information satisfying the first query; wherein the first and second datasets each comprise one of a database, a user session and an explicit user query.