Changeset 8347
- Timestamp:
- 2004-10-18T09:39:56+13:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl3/src/java/org/greenstone/gsdl3/service/Visualizer.java
r8346 r8347 32 32 import vishnu.server.Search.*; 33 33 import vishnu.datablock.*; 34 import vishnu.util.Base64; 34 35 35 36 public class Visualizer … … 70 71 app_info += "<PARAM NAME='collection' VALUE='" + this.cluster_name + "'/>"; 71 72 app_info += "<PARAM NAME='engine' VALUE='GSDLEngine' />"; 73 // add view info if appropriate 72 74 app_info += "The visualization applet.</"+GSXML.APPLET_ELEM+">"; 73 75 … … 134 136 if (type.equals("search")) { 135 137 136 Element cluster_results = this.doc.createElement("cluster");137 vis_data.appendChild(cluster_results);138 Element description_results = this.doc.createElement("descriptions");139 vis_data.appendChild(description_results);138 //Element cluster_results = this.doc.createElement("cluster"); 139 //vis_data.appendChild(cluster_results); 140 //Element description_results = this.doc.createElement("descriptions"); 141 //vis_data.appendChild(description_results); 140 142 141 143 String query = (String)params.get("q"); … … 149 151 descriptions = engine.getDocDescriptions(); 150 152 153 DataBlock db = generateDataBlock(collection_home, null, doc_nums, descriptions); 154 System.err.println("got back data, now converting to string"); 155 try { 156 results = Base64.encodeObject(db); 157 } catch (Exception e) { 158 System.err.println("trying to base64 encode the datablock, but exception happened: "+e); 159 } 160 System.err.println("after converting to string"); 161 // // serialise the data block 162 // try { 163 // ByteArrayOutputStream baos = new ByteArrayOutputStream(); 164 // ObjectOutputStream oos = new ObjectOutputStream(baos); 165 // oos.writeObject(db); 166 // oos.close(); 167 168 // //results = baos.toString("UTF-8"); 169 // results = Base64.encode(baos.toByteArray()); 170 // } catch (Exception e) { 171 // System.err.println("Visualizer serialise data block error: "+e); 172 // } 151 173 //System.err.println("num docs = "+doc_nums.size()); 152 174 //Cluster c = new Cluster(); … … 156 178 157 179 Text t = this.doc.createTextNode(results); 158 cluster_results.appendChild(t); 159 160 for (int i=0; i<descriptions.size(); i++) { 161 String d = (String)descriptions.get(i); 162 Element de = GSXML.createTextElement(this.doc, "desc", d); 163 description_results.appendChild(de); 164 } 180 vis_data.appendChild(t); 181 182 // for (int i=0; i<descriptions.size(); i++) { 183 // String d = (String)descriptions.get(i); 184 // Element de = GSXML.createTextElement(this.doc, "desc", d); 185 // description_results.appendChild(de); 186 // } 187 System.err.println("end of search"); 165 188 } else if (type.equals("fetch")) { 166 189 String docNum = (String)params.get("d"); … … 176 199 return result; 177 200 } 201 System.err.println("returning result"); 202 return result; 203 } 204 205 private DataBlock generateDataBlock(String collection_home, String view, Vector docNums, Vector descriptions) { 206 207 if (docNums.size()==0) { 208 return null; 209 } 210 DataBlock data = new DataBlock(); 211 212 CKServer ck_server = new CKServer(collection_home, view); 178 213 179 return result; 180 } 214 /**** set data fields one by one and pass one what ever gets assembled ****/ 215 216 try{ 217 218 ck_server.setDescriptions(descriptions); 219 220 /**** get candidate keywords ****/ 221 222 String[] keywords = ck_server.computeKeywords(docNums); 223 224 data.words = keywords; 225 226 227 /**** get sparse document * keyword matrix ****/ 228 229 SparseMatrix matrix = ck_server.getSparseMatrix(docNums); 230 231 data.matrix = matrix; 232 233 234 /**** get document indices, this is a subset of the original ****/ 235 /**** those without keywords are excluded ****/ 236 237 int[] docs = ck_server.getHitDocuments(); 238 239 data.docs = docs; 240 241 242 String[] desc = ck_server.getHitDescriptions(); 243 244 data.descriptions = desc; 245 246 247 /**** get 10 or so clusters ****/ 248 249 Vector[] clusters = ck_server.getClusters(); 250 251 data.clusters = clusters; 252 253 254 double[][] centroids = ck_server.getCentroids(); 255 256 257 /**** send their centroids through sammon mapping ****/ 258 259 Point2D[] sammon = ck_server.getSammonMap(centroids); 260 261 System.err.println("Num descriptions: " + descriptions.size()); 262 System.err.println("Num docs: " + docs.length); 263 System.err.println("Num desc: " + desc.length); 264 265 data.sammon = sammon; 266 System.err.println("end of try in generatedatablock"); 267 } catch (Exception e) { 268 System.err.println("VisServlet: computing clustering Error: "+e); 269 e.printStackTrace(); 270 } 271 ck_server = null; 272 System.err.println("returning data"); 273 return data; 274 } 275 181 276 } 182 277
Note:
See TracChangeset
for help on using the changeset viewer.