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