Author: ssmiweve
Date: 2008-06-04 15:17:55 +0200 (Wed, 04 Jun 2008)
New Revision: 6669

Modified:
   
branches/2.17/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractSimpleFastSearchCommand.java
Log:
Issue SKER4766:  (Collection relevant query with no weight from Fast fails)

Modified: 
branches/2.17/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractSimpleFastSearchCommand.java
===================================================================
--- 
branches/2.17/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractSimpleFastSearchCommand.java
     2008-06-04 12:34:16 UTC (rev 6668)
+++ 
branches/2.17/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractSimpleFastSearchCommand.java
     2008-06-04 13:17:55 UTC (rev 6669)
@@ -169,7 +169,7 @@
                     filterStrings.add("+" + navigator.getField() + ':'  + 
value);
             }
         }
-        
+
         return filterStrings;
     }
 
@@ -415,7 +415,7 @@
      * TODO comment me
      */
     protected void setAdditionalParameters(final ISearchParameters params) {
-        
+
         for(Map.Entry<String,String> entry : 
getSearchConfiguration().getSearchParameters().entrySet()){
             params.setParameter(new SearchParameter(entry.getKey(), 
entry.getValue()));
         }
@@ -802,7 +802,7 @@
                         break;
                     case YEAR_MONTH_DAY_DESCENDING:
                         
Collections.sort(searchResult.getModifiers(navigatorKey), 
ModifierDateComparator.YEAR_MONTH_DAY_DESCENDING);
-                        break;                        
+                        break;
                     case YEAR:
                         
Collections.sort(searchResult.getModifiers(navigatorKey), 
ModifierDateComparator.YEAR);
                         break;
@@ -830,7 +830,7 @@
     protected Comparator getModifierComparator(final Navigator nav) {
         return null;
     }
-    
+
     private WeightedSuggestion createProperNameSuggestion(String custom) {
 
         int suggestionIndex = custom.indexOf("->");
@@ -849,32 +849,35 @@
         return BasicWeightedSuggestion.instanceOf(orig, string, string, 1000);
     }
 
+    @SuppressWarnings("unchecked")
     private void collectRelevantQueries(IQueryResult result, FastSearchResult 
searchResult) {
 
         if (result.getQueryTransformations(false).getSuggestions().size() > 0) 
{
-            for (Iterator iterator = 
result.getQueryTransformations(false).getAllQueryTransformations().iterator(); 
iterator.hasNext();)
-            {
-                IQueryTransformation transformation = (IQueryTransformation) 
iterator.next();
 
+            for (IQueryTransformation transformation
+                    : (Collection<IQueryTransformation>)result
+                            
.getQueryTransformations(false).getAllQueryTransformations()){
+
                 if (transformation.getName().equals("FastQT_Synonym") && 
transformation.getMessageID() == 8) {
-                    String query = transformation.getQuery();
 
-                    String[] forWords = query.split("#!#");
+                    final String query = transformation.getQuery();
+                    final String[] forWords = query.split("#!#");
 
                     for (int i = 0; i < forWords.length; i++) {
-                        String[] forOneWord = forWords[i].split("###");
 
+                        final String[] forOneWord = forWords[i].split("###");
+
                         for (int j = 0; j < forOneWord.length; j++) {
 
-                            String[] suggAndWeight = forOneWord[j].split("@");
+                            final String[] suggNweight = 
forOneWord[j].split("@");
 
-                            if 
(!datamodel.getQuery().getString().equalsIgnoreCase(suggAndWeight[0])) {
+                            if 
(!datamodel.getQuery().getString().equalsIgnoreCase(suggNweight[0])) {
 
                                 final WeightedSuggestion rq = 
BasicWeightedSuggestion.instanceOf(
                                         getQuery().getQueryString(),
-                                        suggAndWeight[0],
-                                        suggAndWeight[0],
-                                        Integer.valueOf(suggAndWeight[1]));
+                                        suggNweight[0],
+                                        suggNweight[0],
+                                        2 == suggNweight.length ? 
Integer.valueOf(suggNweight[1]) : Integer.MIN_VALUE);
 
                                 searchResult.addRelevantQuery(rq);
                             }

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to