public static HashMap<String, Object> getResults( Set<String> sourceFileNames, String analyzer, String query) { HashMap<String, SqQuery> queries = getQuery(sourceFileNames, analyzer); Search searcher = new Search(); List<ResultType> results = searcher.combinedResults(queries); SqQuery gQuery = queries.get("GOOGLE"); List<TermType> soapTerms = new ArrayList<TermType>(); QueryType soapQuery = new QueryType(); List<SqTerm> termList = gQuery.getTermList(); int minScore = 0, maxScore = 0; for (Iterator iterator = termList.iterator(); iterator.hasNext(); ) { SqTerm sqTerm = (SqTerm) iterator.next(); int curScore = sqTerm.getScore(); if (curScore > maxScore) { maxScore = curScore; } if (curScore < minScore) { minScore = curScore; } } // Calculate scaling factor int factor = (maxScore - minScore) / 10; for (Iterator iterator = termList.iterator(); iterator.hasNext(); ) { SqTerm sqTerm = (SqTerm) iterator.next(); TermType tt = new TermType(); tt.setWord(sqTerm.getText()); tt.setWeight(((sqTerm.getScore() - minScore) / factor) + ""); soapTerms.add(tt); } soapQuery.setTerm(soapTerms.toArray(new TermType[0])); HashMap<String, Object> hm = new HashMap<String, Object>(); hm.put("Query", soapQuery); hm.put("Result", results); hm.put("Status", searcher.status); return hm; }