1. A search engine, comprising: a controller including a hash function able to receive an input search value and to create there from at least one hash address which is smaller in size than said input search value; a hash pointer unit able to store a plurality of pointer values, wherein respective said pointer values are addressed based on said hash addresses; a memory suitable for storing a database of search results, wherein respective said search results are addressed based on said pointer values; an address bus operationally connecting said controller to said hash pointer unit and able to communicate said hash addresses from said controller to said hash pointer unit; a pointer bus operationally connecting said hash pointer unit to said memory and able to communicate said pointer value from said hash pointer unit to said memory; and a result bus operationally connecting said memory to said controller and able to communicate said search result from said memory to said controller, thereby permitting the search engine to function in a multi-way set-associative manner wherein the size of said memory is not a function of the degree of multi-way set-associativity.