Changeset 15940 for gsdl/trunk
- Timestamp:
- 2008-06-09T17:05:32+12:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gsdl/trunk/src/recpt/dynamicclassifieraction.cpp
r15847 r15940 173 173 get_metadata_values (metadata_element_name, args["c"], collectproto, metadata_values_response, logout); 174 174 175 // Add metadata necessary for output_section_group() to display the results as classifier nodes 175 // Deal with hierarchical metadata values 176 map<text_t, int, lttext_t> classifier_nodes; 176 177 ResultDocInfo_tarray::iterator metadata_value_iterator = metadata_values_response.docInfo.begin(); 177 178 while (metadata_value_iterator != metadata_values_response.docInfo.end()) 178 179 { 179 (*metadata_value_iterator).metadata["doctype"].values.push_back("classify"); 180 (*metadata_value_iterator).metadata["haschildren"].values.push_back("1"); 181 (*metadata_value_iterator).metadata["numleafdocs"].values.push_back((*metadata_value_iterator).result_num); 182 (*metadata_value_iterator).metadata["Title"].values.push_back((*metadata_value_iterator).OID); 180 text_t metadata_value = (*metadata_value_iterator).OID; 181 182 // Is this metadata value hierarchical? 183 text_t::iterator hierarchy_split_position = findchar(metadata_value.begin(), metadata_value.end(), '|'); 184 if (hierarchy_split_position != metadata_value.end()) 185 { 186 // Yes, so split off the first part of the hierarchy for the classifier node 187 metadata_value = substr(metadata_value.begin(), hierarchy_split_position); 188 } 189 190 // Create a node for this metadata value if we haven't seen it before 191 if (classifier_nodes.find(metadata_value) == classifier_nodes.end()) 192 { 193 classifier_nodes[metadata_value] = 0; 194 } 195 196 // Increment the occurrence count 197 classifier_nodes[metadata_value] += (*metadata_value_iterator).result_num; 198 183 199 metadata_value_iterator++; 184 200 } 185 201 202 // Create the structure containing the classifer nodes to pass to output_section_group(), with the right info 203 FilterResponse_t classifier_nodes_response; 204 map<text_t, int, lttext_t>::iterator classifier_nodes_iterator = classifier_nodes.begin(); 205 while (classifier_nodes_iterator != classifier_nodes.end()) 206 { 207 ResultDocInfo_t classifier_node; 208 classifier_node.OID = (*classifier_nodes_iterator).first; 209 210 // Add metadata necessary for output_section_group() to display the results as classifier nodes 211 classifier_node.metadata["doctype"].values.push_back ("classify"); 212 classifier_node.metadata["haschildren"].values.push_back ("1"); 213 classifier_node.metadata["numleafdocs"].values.push_back ((*classifier_nodes_iterator).second); 214 classifier_node.metadata["Title"].values.push_back ((*classifier_nodes_iterator).first); 215 216 classifier_nodes_response.docInfo.push_back (classifier_node); 217 classifier_nodes_iterator++; 218 } 219 186 220 // Display the classifier nodes 187 bptr->output_section_group ( metadata_values_response, args, args["c"], 0, formatlistptr, use_table, metadata, getParents, collectproto, disp, outconvert, textout, logout);221 bptr->output_section_group (classifier_nodes_response, args, args["c"], 0, formatlistptr, use_table, metadata, getParents, collectproto, disp, outconvert, textout, logout); 188 222 } 189 223 else
Note:
See TracChangeset
for help on using the changeset viewer.