Simple persistant databases
One of my concerns with this project was the requirement of storage information from previous searches (and the current search). A RDBMS (relational database management system) such as MySQL and PostGreSQL seem heavy especially using JDBC (Java database connection) and potentially slow. A RDBMS might be required if there a large number of users all accessing a web application/service, however to experiment with various algorithms for adaptivity then something lighter seems better.
One example I have found that fits the bill is JDBM (Java Database Manager) which is "a transactional persistence engine for Java" and can store objects (as well as BLOBs). In an object orientated environment this makes more sense than the conversion of objects to entities (rows or records) and the use of procedural code to do he transaction.