Author: daniele
Date: 2007-02-22 12:28:56 +0100 (Thu, 22 Feb 2007)
New Revision: 4501

Modified:
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
Log:
Fixed a bug in GeoVisitor, query now supports AND and ANDNOT syntax in 
"where"-query.



Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
  2007-02-21 21:36:10 UTC (rev 4500)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
  2007-02-22 11:28:56 UTC (rev 4501)
@@ -68,7 +68,9 @@
        if(getSingleParameter("userSortBy")!=null
                        && getSingleParameter("userSortBy").length()>0){
                sortBy=getSingleParameter("userSortBy");
-       }       
+       }else{
+               sortBy="kw";
+       }
     
     
     }
@@ -77,7 +79,7 @@
     public SearchResult execute() {
        // kjør søk for keyword.
        searchForName=false;
-        super.performQueryTransformation();
+       super.performQueryTransformation();
        SearchResult result = super.execute();
         
        searchForName=true;
@@ -89,11 +91,13 @@
         // viser vi treff på navn først. Hvis det er angitt att
         // det skal sorteres på keywords, viser vi keywords først.
         if(sortBy.equals("kw")){
+               
+               
             result.getResults().addAll(nameQueryResult.getResults());
             
result.setHitCount(result.getHitCount()+nameQueryResult.getHitCount());
         }else{
                nameQueryResult.getResults().addAll(result.getResults());
-               
nameQueryResult.setHitCount(result.getHitCount()+nameQueryResult.getHitCount());
        
+               
nameQueryResult.setHitCount(result.getHitCount()+nameQueryResult.getHitCount());
  
         }       
          
         
@@ -130,7 +134,8 @@
        String query = super.getTransformedQuery();
        
        if(queryTwo!=null&&queryTwo.length()>0){
-               query += " " + QL_AND +" (" + queryTwo+")";
+               query += ") " + QL_AND +" (" + queryTwo+")";
+               query= "("+query;
        }
                
        return query;
@@ -200,16 +205,14 @@
                }
         }
 
-
-        /**
-         * [EMAIL PROTECTED]
-         */
         protected void visitImpl(final AndClause clause) {
             clause.getFirstClause().accept(this);
-            sb.append(QL_AND);
+            if(!(clause.getSecondClause() instanceof NotClause)){
+                sb.append(QL_AND);
+            }
             clause.getSecondClause().accept(this);
         }
-
+        
         /**
          * [EMAIL PROTECTED]
          */
@@ -228,7 +231,9 @@
          */
         protected void visitImpl(final DefaultOperatorClause clause) {
             clause.getFirstClause().accept(this);
-               sb.append(QL_AND);
+            if(!(clause.getSecondClause() instanceof NotClause)){
+                sb.append(QL_AND);
+            }
             clause.getSecondClause().accept(this);
         }
 
@@ -244,6 +249,8 @@
             }
         }
 
+        
+        
         /**
          * [EMAIL PROTECTED]
          */

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

Reply via email to