of these contexts there are large static collections of records which must be indexed by keys, usually English words or phrases. Hashing is one method that can provide the desired rapid access, with little overhead in space, but unless the hash function chosen is suitable, there can be a considerable loss in performance due to collisions. Given adequate space, dynamic hashing methods have been developed to deal with this problem in changeable collections [ENBO88]. With static data sets, however, it is possible to build so-called "perfect" hash functions that require minimal space for the hash table, and which entirely avoid the problem of collisions.Electronic mail to: fox@vtopus.cs.vt.eduAs the use of knowledge-based systems increases, there will be a growing need for efficient artificial intelligence systems and methods to access large lexicons. In the COmposite Document Expert/extended/effective Retrieval (CODER) system we have, in order to provide rapid access to data items on CD-ROMs and to terms in a lexicon built from machine readable dictionaries, investigated the construction of perfect hash functions. We have considered algorithms reported earlier in the literature, have made numerous enhancements to them, have developed new algorithms, and here report on some of our results. This paper covers an O(n 3) algorithm that has been applied to building hash functions for a collection of 69806 words on a CD-ROM. Most recently we have developed a much better algorithm and have succeeded in finding a perfect hash function for a set of 130,199 words taken from sources including the Collins English Dictionary.