Searcher: move idf to query vector
IndexData: add term data
IndexData: actually decrement document count
Terms: use IndexData to keep track of terms id and count
create DocumentFactory class
WatcherThread: use DocumentFactory class to create document
Searcher: prevent divide zero