Author: daniele
Date: 2007-01-23 21:40:23 +0100 (Tue, 23 Jan 2007)
New Revision: 4367

Modified:
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueAdsSearchCommand.java
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
Log:
rewrote CatalogueAds command to use new query. Some code cleanup in 
CatalogueSearchCommand.

Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueAdsSearchCommand.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueAdsSearchCommand.java
       2007-01-23 16:06:04 UTC (rev 4366)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueAdsSearchCommand.java
       2007-01-23 20:40:23 UTC (rev 4367)
@@ -11,7 +11,10 @@
 import java.util.Formatter;
 import java.util.Map;
 
+import no.schibstedsok.searchportal.query.Clause;
+import no.schibstedsok.searchportal.query.DefaultOperatorClause;
 import no.schibstedsok.searchportal.query.LeafClause;
+import no.schibstedsok.searchportal.query.NotClause;
 import no.schibstedsok.searchportal.query.Query;
 
 import org.apache.log4j.Logger;
@@ -51,12 +54,6 @@
     }
 
     
-    String subQuery1 = "";
-    String subQuery2 = "";
-    String subQuery3 = "";
-    String subQuery4 = "";
-    String subQuery5 = "";
-    
     /**
      * Legg til  iypcfspkeywords forran alle ord.
      *
@@ -64,63 +61,51 @@
     protected void visitImpl(final LeafClause clause) {
        
        
-       subQuery1 += (subQuery1.length()>0?QL_AND:" ") + " 
iypcfspkeywords1:"+clause.getTerm()+" ";
-       subQuery2 += (subQuery2.length()>0?QL_AND:" ") + " 
iypcfspkeywords2:"+clause.getTerm()+" ";
-       subQuery3 += (subQuery3.length()>0?QL_AND:" ") + " 
iypcfspkeywords3:"+clause.getTerm()+" ";
-       subQuery4 += (subQuery4.length()>0?QL_AND:" ") + " 
iypcfspkeywords4:"+clause.getTerm()+" ";
-       subQuery5 += (subQuery5.length()>0?QL_AND:" ") + " 
iypcfspkeywords5:"+clause.getTerm()+" ";     
+//     subQuery1 += (subQuery1.length()>0?QL_AND:" ") + " 
iypcfspkeywords1:"+clause.getTerm()+queryTwo;
+//     subQuery2 += (subQuery2.length()>0?QL_AND:" ") + " 
iypcfspkeywords2:"+clause.getTerm()+queryTwo;
+//     subQuery3 += (subQuery3.length()>0?QL_AND:" ") + " 
iypcfspkeywords3:"+clause.getTerm()+queryTwo;
+//     subQuery4 += (subQuery4.length()>0?QL_AND:" ") + " 
iypcfspkeywords4:"+clause.getTerm()+queryTwo;
+//     subQuery5 += (subQuery5.length()>0?QL_AND:" ") + " 
iypcfspkeywords5:"+clause.getTerm()+queryTwo;        
+       
+       String term = clause.getTerm();
+       appendToQueryRepresentation("(");
+       appendToQueryRepresentation("( (iypcfspkeywords5:"+term+queryTwo+") OR 
((iypcfspkeywords5:"+term+"ingensteds AND iypspgep5:ingensteds) ANDNOT 
(iypcfspkeywords5:"+term+queryTwo+"))) OR"); 
+       appendToQueryRepresentation("( (iypcfspkeywords4:"+term+queryTwo+") OR 
((iypcfspkeywords4:"+term+"ingensteds AND iypspgeo4:ingensteds) ANDNOT 
(iypcfspkeywords4:"+term+queryTwo+"))) OR"); 
+               appendToQueryRepresentation("( 
(iypcfspkeywords3:"+term+queryTwo+") OR ((iypcfspkeywords3:"+term+"ingensteds 
AND iypspgeo3:ingensteds) ANDNOT (iypcfspkeywords3:"+term+queryTwo+"))) OR"); 
+               appendToQueryRepresentation("( 
(iypcfspkeywords2:"+term+queryTwo+") OR ((iypcfspkeywords2:"+term+"ingensteds 
AND iypspgeo2:ingensteds) ANDNOT (iypcfspkeywords2:"+term+queryTwo+"))) OR");
+               appendToQueryRepresentation("( 
(iypcfspkeywords1:"+term+queryTwo+") OR ((iypcfspkeywords1:"+term+"ingensteds 
AND iypspgeo1:ingensteds) ANDNOT (iypcfspkeywords1:"+term+queryTwo+")))");
+       appendToQueryRepresentation(")");
     }
     
-    
-    @Override
-    public String getTransformedQuery() {
-       StringBuilder sb = new StringBuilder();
-       sb.append("( ");
-       sb.append(" (%5$s AND iypspgeo5:%6$s) OR ");
-       sb.append(" ( ");
-       sb.append("  (%5$s AND iypspgeo5:ingensteds) ANDNOT ");
-       sb.append("  (%5$s AND iypspgeo5:\"%6$s\") ");
-       sb.append(" ) ");
-       sb.append(") ");
-       sb.append("OR ");
-       sb.append("( ");
-       sb.append(" (%4$s AND iypspgeo4:%6$s) OR ");
-       sb.append(" ( ");
-       sb.append("  (%4$s AND iypspgeo4:ingensteds) ANDNOT ");
-       sb.append("  (%4$s AND iypspgeo4:\"%6$s\") ");
-       sb.append(" ) ");
-       sb.append(") ");
-       sb.append("OR ");
-       sb.append("( ");
-       sb.append(" (%3$s AND iypspgeo3:%6$s) OR ");
-       sb.append(" ( ");
-       sb.append("  (%3$s AND iypspgeo3:ingensteds) ANDNOT ");
-       sb.append("  (%3$s AND iypspgeo3:\"%6$s\") ");
-       sb.append(" ) ");
-       sb.append(") ");
-       sb.append("OR ");
-       sb.append("( ");
-       sb.append(" (%2$s AND iypspgeo2:\"%6$s\") OR ");
-       sb.append(" ( ");
-       sb.append("  (%2$s AND iypspgeo2:ingensteds) ANDNOT ");
-       sb.append("  (%2$s AND iypspgeo2:\"%6$s\") ");
-       sb.append(" ) ");
-       sb.append(") ");
-       sb.append("OR ");
-       sb.append("( ");
-       sb.append(" (%1$s AND iypspgeo1:\"%6$s\") OR ");
-       sb.append(" ( ");
-       sb.append("  (%1$s AND iypspgeo1:ingensteds) ANDNOT ");
-       sb.append("  (%1$s AND iypspgeo1:\"%6$s\") ");
-       sb.append(" ) ");
-       sb.append(")");         
-       
-       StringBuilder result = new StringBuilder();
-       Formatter formatter = new Formatter(result);
+    /**
+     * [EMAIL PROTECTED]
+     */
+    protected void visitImpl(final DefaultOperatorClause clause) {
+       LOG.info("visitImpl DefaultOperatorClause");
+        clause.getFirstClause().accept(this);
 
-       formatter.format(sb.toString(), subQuery1, subQuery2, 
subQuery3,subQuery4, subQuery5,queryTwo);
-       
-       LOG.info("Sponsorquery: "+result);
-       return result.toString();
+        final boolean hasEmptyLeaf = isEmptyLeaf(clause.getFirstClause()) || 
isEmptyLeaf(clause.getSecondClause());
+
+        if (!(hasEmptyLeaf || clause.getSecondClause() instanceof NotClause)) {
+            appendToQueryRepresentation("OR");
+        }
+
+        clause.getSecondClause().accept(this);         
     }
+    
+    /**
+     * Returns true iff the clause is a leaf clause and if it will not produce 
any output in the query representation.
+     *
+     * @param clause The clause to examine.
+     *
+     * @return true iff leaf is empty.
+     */
+    private boolean isEmptyLeaf(final Clause clause) {
+        if (clause instanceof LeafClause) {
+            final LeafClause leafClause = (LeafClause) clause;
+            return getFieldFilter(leafClause) != null || 
getTransformedTerm(clause).equals("");
+        } else {
+            return false;
+        }
+    }    
 }

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-01-23 16:06:04 UTC (rev 4366)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
  2007-01-23 20:40:23 UTC (rev 4367)
@@ -69,7 +69,10 @@
        SearchResult result = super.execute();
         
        
-       searchForName=true;     
+       searchForName=true;
+       
+       // kjør query tranformation en gang til, fordi flagget over
+       // gør at resultatet blir annet enn første gangen.
        super.performQueryTransformation();
        
         // søk etter firmanavn
@@ -133,34 +136,14 @@
        }               
     }
     
-    
-    protected void visitImpl(final AndClause clause) {
-       super.visitImpl(clause);
-    }    
-    
     @Override
-    protected void visitImpl(DefaultOperatorClause clause) {
-       // TODO Auto-generated method stub
-       super.visitImpl(clause);
-    }
-    
-    @Override
-    protected void visitImpl(OrClause clause) {
-       // TODO Auto-generated method stub
-       super.visitImpl(clause);
-    }
-    
-    @Override
-    protected void visitImpl(AndNotClause clause) {
-       // TODO Auto-generated method stub
-       super.visitImpl(clause);
-    }
-    
-    @Override
-    protected void visitImpl(NotClause clause) {
-       // TODO Auto-generated method stub
-       super.visitImpl(clause);
-    }
-    
-    
+    protected String getSortBy() {
+       // hvis man søker etter firmanavn, sorterer vi etter "iyprpnavn"
+       // ellers søker vi etter keywords, og da sorterer vi etter "iyprpkw" 
istedet.
+       String sortBy="iyprpkw";
+       if(searchForName){
+               sortBy="iyprpnavn";
+       }
+       return sortBy;
+    }    
 }

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

Reply via email to