public Collection<ResultData> search(final Collection<String> terms) {
    final Map<ResultData, Integer> results = new TreeMap<ResultData, Integer>();
 
    for (final String term : terms) {
        final Collection<ResultData> queryResults = dao.searchDatabase(term);
 
        for (final ResultData record : queryResults) {
            final Integer weighting = results.get(record);
 
            if (weighting == null) {
                results.put(record, 1);
            } else {
                results.put(record, (weighting + 1));
            }
        }
    }
    return null;
}