rendered paste body public int search(String q, boolean refineQuery, String sort_field) throws Exception {
System.out.println("------------------" + sort_field + "-----------------");
System.out.println("-- changes made for sort in place -----------------");
System.out.println("-- changes made for sort in place -----------------");
System.out.println("-- changes made for sort in place -----------------");
System.out.println("-- changes made for sort in place -----------------");
System.out.println("-- changes made for sort in place -----------------");
System.out.println("-- changes made for sort in place -----------------");
System.out.println("-- changes made for sort in place -----------------");
System.out.println("-- changes made for sort in place -----------------");
System.out.println("-- changes made for sort in place -----------------");
System.out.println("-- changes made for sort in place -----------------");
System.out.println("-- changes made for sort in place -----------------");
System.out.println("-- changes made for sort in place -----------------");
System.out.println("------------------" + sort_field + "-----------------");
Qury = q;
if( absDir == null | urlAdd == null | umlsDir == null) {
throw new EmptyDataDir("Either one or more (absDir, urlAdd, umlsDir) attribute is not set. Use appropriate set method. / properties file");
}//if
BooleanQuery.setMaxClauseCount(Integer.MAX_VALUE);
int rtnCode = 0;
profiler = new Profiler();
profiler.setQuery(q);
QueryFormat queryFormat = new QueryFormat(umlsDir,profiler, refineQuery);
String formattedQuery = new String();
if(!refineQuery)
formattedQuery = validateAndFormatQuery(q,queryFormat);
else
formattedQuery = q;
System.out.println("Formatted Query :" + formattedQuery);
fQuery =formattedQuery; // for testing
htmlDir = new String[serverName.length];
if(formattedQuery.length() > 0) {
int aliveServers = 0;
Searchable[] searchables = new Searchable[serverName.length];
for(int j=0; j < serverName.length; j++) {
searchables[j]=null;
try {
searchables[j] = lookupServer(serverName[j], bindingName, port[j]);
System.out.println("Server " + serverName[j] + " up");
htmlDir[aliveServers] = absDir[j];
aliveServers++;
} catch (Exception e) {
System.out.println("Server " + serverName[j] + " is down.");
//e.printStackTrace();
}
}//for
if(aliveServers == 0) {
System.out.println("Servers are not alive");
}//if
if(aliveServers!=0) {
Searchable[] searchableLive = new Searchable[aliveServers];
for(int alive = 0, k = 0; k < serverName.length; k++) {
if(searchables[k] != null) {
searchableLive[alive] = searchables[k];
alive++;
}//if
}//for
MultiSearcher mSearcher = null;
try {
mSearcher = new MultiSearcher(searchableLive);
} catch(Exception e) {
e.printStackTrace();
}
//searcherCache.put(bindingName,mSearcher); // Cache Searchables in the Hashmap
QueryParser queryParser = new QueryParser("abstract", new StandardAnalyzer());
Query query = null;
//formattedQuery = removeSquarebracket(formattedQuery);
//System.out.println("------------------" + formattedQuery + "-----------------");
try {
query = queryParser.parse(formattedQuery);
} catch(org.apache.lucene.queryParser.ParseException pe) {
System.out.println("ERROR: formattedQuery : " + formattedQuery);
pe.printStackTrace();
rtnCode = -1;
return rtnCode;
}
//System.out.println("********************" + query + "***********************");
float start = new Date().getTime();
try {
long Start = System.currentTimeMillis();
//hits = mSearcher.search(query);
Sort sort_obj = new Sort();
sort_obj.setSort(sort_field);
if(sort_field == null)
{
hits = mSearcher.search(query);
}
else
{
try
{
hits = mSearcher.search(query,sort_obj);
}
catch (Exception cat1)
{
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
cat1.printStackTrace();
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
System.out.println("******************** stack trace ***********************");
sort_obj.setSort("pmid");
hits = mSearcher.search(query,sort_obj);
}
}
long End = System.currentTimeMillis();
if(profiler != null) {
profiler.addStatistics(""+(End - Start));
profiler.addStatistics(""+hits.length());
System.out.println("--------Profiler------------------\n Thread Id : "+profiler.getId()+" Terms :"+profiler.getQuery()+" Data : "+profiler.getStatistics());
}
profiler = null;
rtnCode = hits.length();
float end = new Date().getTime();
timeTaken = end - start;
pmr = new PubMedResult(serverName,mSearcher,sort_field, hits, q, timeTaken, htmlDir, urlAdd, navFnc);
setFlag = true;
} catch(Exception e) {
e.printStackTrace();
rtnCode = -1;
return rtnCode;
}
} else {
rtnCode = -1;
}//if
} else {
rtnCode = -1;
}//if
return rtnCode;
}//search