Author: daniele
Date: 2007-01-22 13:13:25 +0100 (Mon, 22 Jan 2007)
New Revision: 4359

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:
Added company name search in Catalogue search command, modified 
CatalogueAdsSearch command to use new query.

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-22 11:41:15 UTC (rev 4358)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueAdsSearchCommand.java
       2007-01-22 12:13:25 UTC (rev 4359)
@@ -8,24 +8,20 @@
 
 package no.schibstedsok.searchportal.mode.command;
 
+import java.util.Formatter;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
-
-import no.fast.ds.search.SearchParameter;
-import 
no.schibstedsok.searchportal.mode.command.AbstractSearchCommand.ReconstructedQuery;
 import no.schibstedsok.searchportal.query.LeafClause;
 import no.schibstedsok.searchportal.query.Query;
-import no.schibstedsok.searchportal.query.Visitor;
-import no.schibstedsok.searchportal.query.XorClause;
-import no.schibstedsok.searchportal.result.SearchResult;
 
+import org.apache.log4j.Logger;
+
 /**
  *
  * A search command for the web search.
  * @author magnuse
  */
-public class CatalogueAdsSearchCommand extends FastSearchCommand {
+public class CatalogueAdsSearchCommand extends AdvancedFastSearchCommand {
        
     private static final Logger LOG = 
Logger.getLogger(CatalogueAdsSearchCommand.class);
     
@@ -55,23 +51,76 @@
     }
 
     
+    String subQuery1 = "";
+    String subQuery2 = "";
+    String subQuery3 = "";
+    String subQuery4 = "";
+    String subQuery5 = "";
+    
     /**
      * Legg til  iypcfspkeywords forran alle ord.
      *
      */
     protected void visitImpl(final LeafClause clause) {
-       appendToQueryRepresentation("iypcfspkeywords:");
-        super.visitImpl(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()+" ";     
     }
     
     
-    /**
-     *         hent hele den transformerte querien.
-     *         Den innholder query to også for qeo.
-     */
+    @Override
     public String getTransformedQuery() {
-       // hvis det finnes en ekstra query, legg til denne i søket.     
-        return queryTwo!=null ? super.getTransformedQuery()+" 
iypcfspgeo:\""+queryTwo+"\"" : super.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);
+
+       formatter.format(sb.toString(), subQuery1, subQuery2, 
subQuery3,subQuery4, subQuery5,queryTwo);
+       
+       LOG.info("Sponsorquery: "+result);
+       return result.toString();
     }
 }

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-22 11:41:15 UTC (rev 4358)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
  2007-01-22 12:13:25 UTC (rev 4359)
@@ -11,6 +11,7 @@
 
 import no.fast.ds.search.ISearchParameters;
 import no.fast.ds.search.SearchParameter;
+import no.schibstedsok.searchportal.query.LeafClause;
 import no.schibstedsok.searchportal.query.Query;
 import no.schibstedsok.searchportal.result.BasicSearchResultItem;
 import no.schibstedsok.searchportal.result.CatalogueSearchResultItem;
@@ -26,8 +27,9 @@
 public class CatalogueSearchCommand extends AbstractSimpleFastSearchCommand {
 
     private static final Logger LOG = 
Logger.getLogger(CatalogueSearchCommand.class);
-    private String queryTwo=null;
-    
+    private String queryTwo = null;
+    private String queryName = "";
+    private boolean searchForName = false;
 
     /** Creates a new catalogue search command.
      * TODO. Rewrite from scratch. This is insane.
@@ -52,13 +54,23 @@
     /** TODO comment me. **/
     public SearchResult execute() {
         LOG.info("execute()");
-       LOG.info("Catalogue query is :" + getTransformedQuery());     
        
 
        
-        // kør vanligt søk.
-        SearchResult result = super.execute();
-               
+        // kør vanligt søk, keywords.
+        searchForName=false;
+       LOG.info("Søk med keyword query is :" + getTransformedQuery());     
+       SearchResult result = super.execute();
+        
+        // søk etter firmanavn
+       searchForName=true;
+       LOG.info("Søk med firmanavn query is :" + getTransformedQuery());     
+        SearchResult nameQueryResult = super.execute();
+        
+        // legg til navnsøk.
+        result.getResults().addAll(nameQueryResult.getResults());
+        result.setHitCount(result.getHitCount()+nameQueryResult.getHitCount());
+        
         // konverter til denne.
         List<CatalogueSearchResultItem> nyResultListe = new 
ArrayList<CatalogueSearchResultItem>();
                
@@ -89,11 +101,28 @@
     /** TODO comment me. **/
     public String getTransformedQuery() {
        LOG.info("Catalogue Transformed Query");
+       String query=null;
        
-       // hvis det finnes en ekstra query, legg til denne i søket.     
-        return queryTwo!=null ? super.getTransformedQuery()+" 
iypcfgeo:\""+queryTwo+"\"" : super.getTransformedQuery();
+       if(searchForName){
+               // hvis det finnes en ekstra query, legg til denne i søket.     
+               query = queryTwo!=null ? queryName +" 
iypcfgeo:\""+queryTwo+"\"" : queryName;
+       }else{
+               query = queryTwo!=null ? super.getTransformedQuery()+" 
iypcfgeo:\""+queryTwo+"\"" : super.getTransformedQuery();                
+       }
+       
+       return query;
     }
     
+    /**
+     * Legg til  iypcfspkeywords forran alle ord.
+     *
+     */
+    protected void visitImpl(final LeafClause clause) {
+//     
+       queryName += " iypcfnavn:"+clause.getTerm()+" ";
+       appendToQueryRepresentation(clause.getTerm());
+//     super.visitImpl(clause);
+    }
     
 
 }

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

Reply via email to