1. A method for searching a database for data records relating to given search keywords in a search criteria comprising the steps of: generating a set of data record components corresponding to each data record; creating an inverted list of keywords that maps each data record component to a region of the database in which the data record corresponding to the component is found; identifying regions of the database that contain data records relating to the given search keyword by accessing the inverted list to find data record components related to the search keyword; constructing a query that corresponds to the given search criteria; and executing the query on the identified regions of the database to retrieve records matching the search criteria.