Author: daniele
Date: 2007-05-14 16:22:58 +0200 (Mon, 14 May 2007)
New Revision: 5073

Modified:
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueBannersSearchCommand.java
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
Log:
GULD-526: Splitting og joining av query for katalog sok.

Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueBannersSearchCommand.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueBannersSearchCommand.java
   2007-05-14 14:22:13 UTC (rev 5072)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueBannersSearchCommand.java
   2007-05-14 14:22:58 UTC (rev 5073)
@@ -76,7 +76,7 @@
      */
     @Override
     public String getTransformedQuery() {
-        return "iypcfbannerkw:"+super.getTransformedQuery()+queryGeoString;
+        return "iypcfbannerkw:"+super.getTransformedQuery();
     }
 
     /**

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-05-14 14:22:13 UTC (rev 5072)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
  2007-05-14 14:22:58 UTC (rev 5073)
@@ -75,6 +75,12 @@
  */
 public final class CatalogueSearchCommand extends AdvancedFastSearchCommand {
 
+    /** boolean flags to which get set during visitor pass.
+     *  used by getSortBy to determin which rank profile to use.
+     */
+    private boolean foundCompanyNameInQuery=false;
+    private boolean foundKeywordInQuery=false;
+    
     /** Logger for this class. */
     private static final Logger LOG = 
Logger.getLogger(CatalogueSearchCommand.class);
 
@@ -380,21 +386,32 @@
 
     /**
      * Set what to sort the resultset by.
-     * The possible value is sort by company name, or by keywords.
+     * The possible value is sort by company name, or by keywords
+     * or even more advanced, by iypgeosortable
      *
      * This value is used by the call to Fast-servers, to specify
      * which rank-profile to sort by.
      *
-     * The sorting may be altered if user has supplied the userSortBy
-     * parameter.
+     * If keyword found, sort with keyword rank profile,
+     * else if company name found, sort with company name rank profile.
+     * if neither keyword or company name is found, use the value 
+     * from modes.xml.
+     *
+     * The sorting can be overrided by user specified sorting, or if 
+     * it is a geo search.
+     *
      * @return the sorting to be used when executing the query.
      */
     @Override
     protected String getSortBy() {
         String sortBy = super.getSortBy();
+        
+        sortBy = 
foundKeywordInQuery?SORTBY_KEYWORD:foundCompanyNameInQuery?SORTBY_COMPANYNAME:sortBy;
+        
         if ("name".equalsIgnoreCase(userSortBy)) {
             sortBy = SORTBY_COMPANYNAME;
         }
+        
         final ParametersDataObject pdo = datamodel.getParameters();
         if(GeoSearchUtil.isGeoSearch(pdo)){
             sortBy="iypgeosortable";
@@ -438,6 +455,17 @@
         final Matcher m = p.matcher(getTransformedTerms().get(clause));
 
         final boolean hasNotWordCharacters = m.find();
+        
+        // check if this is a known keyword.
+        
if(clause.getKnownPredicates().contains(TokenPredicate.COMPANY_KEYWORD_RESERVED)){
+            foundKeywordInQuery=true;
+        }
+        
+        // check if this is a known company name.
+        if(clause.getKnownPredicates().contains(TokenPredicate.COMPANYRANK)
+        || 
clause.getKnownPredicates().contains(TokenPredicate.COMPANYENRICHMENT)){
+            foundCompanyNameInQuery=true;
+        }
 
         if(hasNotWordCharacters){
 

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

Reply via email to