1. An apparatus comprising: at least one processor; a memory coupled to the at least one processor; a user-extensible object oriented framework residing in the memory, the framework including at least one core function that cannot be modified by a user and at least one extensible function defined by a user to customize the framework and thereby define a desired information retrieval system, the framework including: a load document processor that loads and preprocesses a plurality of documents; an index processor that creates at least one word index corresponding to the plurality of documents; and a query processor that receives a query and determines if any of the plurality of documents match the query by processing the query and comparing the processed query to the plurality of words in the at least one word index, thereby providing a query result.