1. An apparatus for identifying one or more portions of data in a database for comparison with a query input by a user, the query and the portions of data each comprising a sequence of sub-word units, the apparatus comprising: a memory for storing data defining a plurality of sub-word unit classes, each class comprising sub-word units that are confusable with other sub-word units in the same class; a memory for storing an index having a plurality of entries, each of which comprises: (i) an identifier for identifying the entry; (ii) a key associated with the entry and which is related to the identifier for the entry in a predetermined manner; and (iii) a number of pointers which point to portions of data in the database which correspond to the key for the entry; wherein each key comprises a sequence of sub-word unit classifications which is derived from a corresponding sequence of sub-word units appearing in the database by classifying each of the sub-word units in the sequence into one of the plurality of sub-word unit classes; means for classifying each of the sub-word units in the input query into one of the plurality of sub-word unit classes and for defining one or more sub-sequences of query sub-word unit classifications; means for determining a corresponding identifier for an entry in said index for each of said one or more sub-sequences of query sub-word unit classifications; means for comparing the key associated with each of the determined identifiers with the corresponding sub-sequence of query sub-word unit classifications; and means for retrieving one or more pointers from said index in dependence upon the output of said comparing means, which one or more pointers identify said one or more portions of data in the database for comparison with the input query.