Full texting indexing can provide a solution to each of those problems. The Apache Lucene Project provides an easy to integrate indexing solution for the virtual classroom.