if(sortKeys!=null && sortKeys.length()>0) {
System.out.print("&sortKeys="+sortKeys);
searchRequest.setSortKeys(sortKeys);
}
System.out.println("&startRecord="+startRecord+"\n");
searchRequest.setStartRecord(new PositiveInteger(Integer.toString(startRecord)));
startTime=System.currentTimeMillis();
searchResponse = db.doRequest(searchRequest);
System.out.println("elapsed time: "+(System.currentTimeMillis()-startTime)+"ms");
DiagnosticsType diags=searchResponse.getDiagnostics();
if(diags!=null) {
DiagnosticType diag, diagArray[]=diags.getDiagnostic();
for(i=0; i<diagArray.length; i++) {
diag=diagArray[i];
System.out.print("diagnostic: "+diag.getUri());
if(diag.getDetails()!=null)
System.out.print(", details: "+diag.getDetails());
System.out.println();
}
}
System.out.println("postings=" + searchResponse.getNumberOfRecords());
// ExtraDataType edt=searchResponse.getExtraResponseData();
// if(edt!=null) {
// HandleSGML rh=new HandleSGML();
// StringBuffer tags=new StringBuffer();
// tags.append("ns1:restrictorSummary 0 recordTag\n");
// tags.append("restrictor 10\n");
// tags.append("entry 11\n");
// tags.append("xmlns 12\n");
// tags.append("xmlns:ns1 12\n");
// tags.append("count 13\n");
// tags.append("use 14\n");
// rh.loadTags(new StringReader(tags.toString()));
// rh.setByteToCharConverter("utf8");
// MessageElement elems[]=edt.get_any();
// rh.Input(new ByteArrayInputStream(elems[0].toString().getBytes("UTF-8")));
// DataDir summary=rh.getNextRecord();
// DataDir restrictors[]=new DataDir[summary.count()-1];
// restrictors[0]=summary.child().next();
// for(int i=1; i<restrictors.length; i++)
// restrictors[i]=restrictors[i-1].next();
// for(int i=0; i<restrictors.length; i++) {
// System.out.print("use="+restrictors[i].find(2).find(14).getUTFString());
// System.out.print(" count="+restrictors[i].find(2).find(13).getUTFString());
// System.out.print(" ");
// }
// System.out.println();
// for(int i=0; i<restrictors.length; i++)
// restrictors[i]=restrictors[i].child().next();
// for(int j=0; j<5; j++) {
// for(int i=0; i<restrictors.length; i++) {
// if(restrictors[i]!=null) {
// System.out.print(restrictors[i].find(1).getUTFString());
// System.out.print("("+restrictors[i].find(2).find(13).getUTFString()+")");
// System.out.print(" ");
// restrictors[i]=restrictors[i].next();
// }
// else
// System.out.print(" ");
// }
// System.out.println();
// }
// }
RecordsType records = searchResponse.getRecords();
RecordType record[];
if(records == null || (record = records.getRecord()) == null) {
System.out.println("0 records returned");
}
else {
System.out.println(record.length + " records returned");
MessageElement[] elems;
Source source;
String recordStr;
StringOrXmlFragment frag;
StringWriter sw;
for(i=0; i<record.length; i++) {
System.out.print("record number " + record[i].getRecordPosition());
frag=record[i].getRecordData();
elems=frag.get_any();
recordStr=elems[0].toString();
if(transformer!=null) {
source=new StreamSource(new StringReader(recordStr));
sw=new StringWriter();
try {
transformer.transform(source, new StreamResult(sw));
System.out.print(sw.toString());
}
catch(Exception e) {
e.printStackTrace();
}
}
else
System.out.println(recordStr);
}
}
System.out.println("nextRecordPosition=" + searchResponse.getNextRecordPosition());
}
else if(scan) {
System.out.print("operation=searchRetrieve");
scanRequest = new ScanRequestType();
System.out.print("&version=1.1");
scanRequest.setVersion("1.1");
System.out.println("&scanClause="+scanClause);
scanRequest.setScanClause(scanClause);
scanRequest.setMaximumTerms(new PositiveInteger(Integer.toString(maximumTerms)));
scanRequest.setResponsePosition(new NonNegativeInteger(Integer.toString(responsePosition)));
ScanResponseType scanResponse = db.doRequest(scanRequest);
if(scanResponse != null) {
TermsType terms = scanResponse.getTerms();
if(terms != null) {