// This creates the final keyword set that composes each of the excerpts. Only
	// the top N keywords are stored which are ranked on their keyword weight.
	// @param hit_list_breadth - this is the number of hit list divisions
	// @param max_keyword_size - this is the maximum number of keywords 
	//                         - allowed in the initial excerp set
	void CompileExcerptKeywordSet(int client_id, int client_num, 
		int hit_list_breadth, int max_keyword_size) {

		CNodeStat::SetClientID(client_id);
		CNodeStat::SetClientNum(client_num);
		CNodeStat::SetHashDivNum(hit_list_breadth);

		m_tok_queue.Initialize(max_keyword_size, CompareTokens);
		m_sorted_tok_set.Initialize(max_keyword_size);

		Initialize();

		m_hit_enc_file.OpenReadFile(CUtility::ExtendString
			("LocalData/hit_encoding", GetClientID()));

		m_excerpt_occur_map_file.OpenReadFile(CUtility::ExtendString
			("LocalData/excerpt_occurr", GetClientID()));

		for(int i=0; i<m_assoc_id_file.OverflowSize(); i++) {
			m_assoc_id_file[i].OpenReadFile(CUtility::ExtendString
				("LocalData/mapped_assoc_file", i, ".client", GetClientID()));
		}

		cout<<endl<<"Writing Excerpt Documents"<<endl;
		WriteDocuments();
	}