Author: ssthkjer
Date: 2007-01-08 14:38:00 +0100 (Mon, 08 Jan 2007)
New Revision: 4279

Modified:
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSimpleFastSearchCommand.java
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsSearchCommand.java
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/FastSearchConfiguration.java
Log:
Added new filtertype attribute. Use this for newscommand

Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
       2007-01-08 13:16:13 UTC (rev 4278)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
       2007-01-08 13:38:00 UTC (rev 4279)
@@ -441,8 +441,8 @@
                     }
 
                     fillBeanProperty(sc, inherit, "filter", ParseType.String , 
commandE, "");
+                    fillBeanProperty(sc, inherit, "filtertype", 
ParseType.String , commandE, "");
                     fillBeanProperty(sc, inherit, "ignoreNavigation", 
ParseType.Boolean , commandE, "false");
-                    fillBeanProperty(sc, inherit, "norwegianNewsNavigator", 
ParseType.Boolean , commandE, "false");
                     fillBeanProperty(sc, inherit, "offensiveScoreLimit", 
ParseType.Int , commandE, "-1");
                     fillBeanProperty(sc, inherit, "qtPipeline", 
ParseType.String , commandE, "");                    
                     fillBeanProperty(sc, inherit, "queryServerUrl", 
ParseType.String , commandE, "");

Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSimpleFastSearchCommand.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSimpleFastSearchCommand.java
 2007-01-08 13:16:13 UTC (rev 4278)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSimpleFastSearchCommand.java
 2007-01-08 13:38:00 UTC (rev 4279)
@@ -126,9 +126,12 @@
             final String modifiers[] = (String[]) navigatedValues.get(field);
 
 
-            for (int i = 0; i < modifiers.length; i++) {
-                if (!field.equals("contentsource") || 
!modifiers[i].equals("Norske nyheter")){
-                    filterStrings.add("+" + field + ":\"" + modifiers[i] + 
"\"");
+            for (int i = 0; i < modifiers.length; i++) {                
+                if (!field.equals("contentsource") || 
!modifiers[i].equals("Norske nyheter")) {                   
+                    if ( 
"adv".equals(getSearchConfiguration().getFiltertype()) )
+                        filterStrings.add(" AND " + field + ":\"" + 
modifiers[i] + "\"");
+                    else
+                        filterStrings.add("+" + field + ":\"" + modifiers[i] + 
"\"");
                 }
             }
         }
@@ -731,7 +734,10 @@
 
         LOG.debug("createQuery: superFilter=" + superFilter);
 
-        params.setParameter(new SearchParameter("filtertype", "any"));
+        if (getSearchConfiguration().getFiltertype() != null && 
getSearchConfiguration().getFiltertype().equals("adv"))
+            params.setParameter(new SearchParameter("filtertype", "adv"));
+        else
+            params.setParameter(new SearchParameter("filtertype", "any"));
 
         params.setParameter(new SearchParameter(BaseParameter.TYPE, "all"));
 

Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsSearchCommand.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsSearchCommand.java
       2007-01-08 13:16:13 UTC (rev 4278)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsSearchCommand.java
       2007-01-08 13:38:00 UTC (rev 4279)
@@ -78,48 +78,55 @@
                 if (containsJustThePrefix() || 
getTransformedQuery().equals("")) {
                     filterBuilder.append(FAST_SIZE_HACK);
                 }
+                
+                GregorianCalendar calendar = new java.util.GregorianCalendar();
+                calendar.add( java.util.Calendar.MONTH, -24 );
+                final SimpleDateFormat formatter = new 
SimpleDateFormat("yyyy-MM-dd");
+                String newsdate = formatter.format(calendar.getTime());        
        
                                 
                 if (!getSearchConfiguration().isIgnoreNavigation()) {
 
                     final String contentSource = getParameter("contentsource");
                     final String newsCountry = getParameter("newscountry");
-                    final String newsSource = getParameter("newssource");
+                    final String newsSource = getParameter("newssource");      
                                  
 
-                    // AAhhrghh. Need to provide backwards compatibility.
-                    // People are linking us using contentsource="Norske 
nyheter"
-                    if (contentSource != null && !contentSource.equals("")) {  
                      
-                        if (contentSource.equals("Norske nyheter")) {
-                            filterBuilder.append(" +newscountry:Norge");
+                    // general rule is to display news fresher than 2 years, 
but with exceptions for:
+                    // "norske papiraviser" -> display for all years
+                    // certain newssources (as listed below) -> display for 
all years
+                    if (!contentSource.equals("Mediearkivet")) {             
+                        
+                        // AAhhrghh. Need to provide backwards compatibility.
+                        // People are linking us using contentsource="Norske 
nyheter"
+                        if (contentSource != null && 
!contentSource.equals("")) {                        
+                            if (contentSource.equals("Norske nyheter")) {
+                                filterBuilder.append(" AND newscountry:Norge");
+                            } else {
+                                filterBuilder.append(" AND contentsource:\""+ 
contentSource + "\"");
+                            }
                         } else {
-                            filterBuilder.append(" +contentsource:"+ 
contentSource);
+                            if (newsCountry != null && !newsCountry.equals(""))
+                                filterBuilder.append(" AND newscountry:\""+ 
newsCountry + "\"");
                         }
-                    }
-                    if (newsCountry != null && !newsCountry.equals("")) {
-                        filterBuilder.append(" +newscountry:"+ newsCountry);
-                    }
+                        filterBuilder.append(" ANDNOT meta.collection:mano");
+                        filterBuilder.append(" AND (docdatetime:>" + newsdate);
+                        filterBuilder.append(" OR newssource:Digi.no");
+                        filterBuilder.append(" OR newssource:DinSide");
+                        filterBuilder.append(" OR newssource:ITavisen");
+                        filterBuilder.append(" OR newssource:iMarkedet");
+                        filterBuilder.append(" OR newssource:Propaganda )");   
                                             
   
-                    // Add filter to remove papernews from norwegian newssearch
-                    // and only display news fresher than 2 years except for 
some newssources (deal with Retriever)
-                    if (!contentSource.equals("Mediearkivet")) {
-                        filterBuilder.append(" -meta.collection:mano");
-                        if (!newsSource.equals("DinSide") && 
!newsSource.equals("Digi.no") && !newsSource.equals("ITavisen") && 
!newsSource.equals("iMarkedet") && !newsSource.equals("Propaganda")) {
-                            GregorianCalendar calendar = new 
java.util.GregorianCalendar();
-                            calendar.add( java.util.Calendar.MONTH, -24 );
-                            final SimpleDateFormat formatter = new 
SimpleDateFormat("yyyy-MM-dd");
-                            String xx = formatter.format(calendar.getTime());
-                            filterBuilder.append(" +docdatetime:>" + xx);
-                        }
+                    // PAPERNEWS:    
+                    } else {
+                        filterBuilder.append(" AND contentsource:" + 
contentSource);
                     }
                 } else {
-                    GregorianCalendar calendar = new 
java.util.GregorianCalendar();
-                    calendar.add( java.util.Calendar.MONTH, -24 );
-                    final SimpleDateFormat formatter = new 
SimpleDateFormat("yyyy-MM-dd");
-                    String xx = formatter.format(calendar.getTime());
-                    filterBuilder.append(" +docdatetime:>" + xx);         
-                    
-                    if (getSearchConfiguration().isNorwegianNewsNavigator()) {
-                        filterBuilder.append(" +newscountry:Norge");
-                    }
+                    filterBuilder.append(" AND (docdatetime:>" + newsdate);    
+                    filterBuilder.append(" OR newssource:Digi.no");
+                    filterBuilder.append(" OR newssource:DinSide");
+                    filterBuilder.append(" OR newssource:ITavisen");
+                    filterBuilder.append(" OR newssource:iMarkedet");
+                    filterBuilder.append(" OR newssource:Propaganda ");        
                                    
+                    filterBuilder.append(" OR meta.collection:mano )");
                 }                
             }
         }

Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/FastSearchConfiguration.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/FastSearchConfiguration.java
  2007-01-08 13:16:13 UTC (rev 4278)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/FastSearchConfiguration.java
  2007-01-08 13:38:00 UTC (rev 4279)
@@ -23,6 +23,7 @@
     private static final Logger LOG = 
Logger.getLogger(FastSearchConfiguration.class);
     
     private static final String[] ALL_COLLECTIONS = {
+        "retriever",
         "tv",
         "webcrawlno1",
         "webcrawlno1",
@@ -35,8 +36,7 @@
         "yellow",
         "white",
         "weather",
-        "carelscrawl",
-        "retriever",
+        "carelscrawl",        
         "moreover",
         "retrievernordic",
         "mano",
@@ -60,11 +60,11 @@
     private String resultView;
     private boolean clustering = false;
     private boolean ignoreNavigation = false;
-    private boolean norwegianNewsNavigator = false;
     private int offensiveScoreLimit = 0;
     private int spamScoreLimit = 0;
 
     private String filter;
+    private String filtertype;
 
     private boolean relevantQueries = false;
 
@@ -93,10 +93,10 @@
             resultView = fsc.resultView;
             clustering = fsc.clustering;
             ignoreNavigation = fsc.ignoreNavigation;
-            norwegianNewsNavigator = fsc.norwegianNewsNavigator;
             offensiveScoreLimit = fsc.offensiveScoreLimit;
             spamScoreLimit = fsc.spamScoreLimit;
             filter = fsc.filter;
+            filtertype = fsc.filtertype;
             relevantQueries = fsc.relevantQueries;
         }
     }
@@ -138,8 +138,17 @@
         
         final String coll[] = collectionStrings.toArray(new 
String[collectionStrings.size()]);
 
-        for (int i = 0; i < coll.length; i++) {
-            coll[i] = "-meta.collection:" + coll[i];
+        if ("adv".equals(this.filtertype)) {
+            for (int i = 0; i < coll.length; i++) {
+                if (i == 0)
+                    coll[i] = " size:>0 ANDNOT meta.collection:" + coll[i];
+                else
+                    coll[i] = " ANDNOT meta.collection:" + coll[i];
+            }
+        } else { 
+            for (int i = 0; i < coll.length; i++) {
+                coll[i] = " -meta.collection:" + coll[i];
+            }            
         }
         return coll;
     }
@@ -252,14 +261,6 @@
     public void setIgnoreNavigation(final boolean ignoreNavigationEnabled) {
         this.ignoreNavigation = ignoreNavigationEnabled;
     }
-
-    public boolean isNorwegianNewsNavigator() {
-        return norwegianNewsNavigator;
-    }
-
-    public void setNorwegianNewsNavigator(final boolean 
norwegianNewsNavigatorEnabled) {
-        this.norwegianNewsNavigator = norwegianNewsNavigatorEnabled;
-    }
     
     public int getOffensiveScoreLimit() {
         return offensiveScoreLimit;
@@ -276,7 +277,16 @@
     public String getFilter() {
         return filter;
     }
+    
+    public String getFiltertype() {
+        return filtertype;
+    }
 
+    public void setFiltertype(final String filtertype) {
+        this.filtertype = filtertype;
+    }
+    
+
     void setSpamScoreLimit(final int i) {
         spamScoreLimit = i;
     }

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

Reply via email to