Author: ssmiweve
Date: 2008-09-16 23:57:26 +0200 (Tue, 16 Sep 2008)
New Revision: 6819

Modified:
   
branches/2.17/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
   
branches/2.17/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchMode.java
   
branches/2.17/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchModeFactory.java
Log:
Issue SKER5004:  (Create option to disable the automatic rewrite of <multi-word 
query> to (<multi-word query>) when there are zero hits across all verticals) 


Modified: 
branches/2.17/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
===================================================================
--- 
branches/2.17/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java  
    2008-09-16 21:56:01 UTC (rev 6818)
+++ 
branches/2.17/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java  
    2008-09-16 21:57:26 UTC (rev 6819)
@@ -657,7 +657,8 @@
         final String queryStr = datamodel.getQuery().getString();
 
         if (!queryStr.startsWith("(") && !queryStr.endsWith(")")
-                && datamodel.getQuery().getQuery().getTermCount() > 1) {
+                && datamodel.getQuery().getQuery().getTermCount() > 1
+                && context.getSearchMode().isAutoBroadening()) {
 
             // DataModel's ControlLevel will be RUNNING_QUERY_CONSTRUCTION
             //  Increment it onwards to SEARCH_COMMAND_CONSTRUCTION.

Modified: 
branches/2.17/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchMode.java
===================================================================
--- 
branches/2.17/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchMode.java
  2008-09-16 21:56:01 UTC (rev 6818)
+++ 
branches/2.17/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchMode.java
  2008-09-16 21:57:26 UTC (rev 6819)
@@ -1,5 +1,5 @@
 /*
- * Copyright (2005-2007) Schibsted Søk AS
+ * Copyright (2005-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -80,6 +80,7 @@
     private Collection<SearchConfiguration> searchConfigurations;
     private SearchMode parentSearchMode;
     private boolean queryAnalysisEnabled = false;
+    private boolean autoBroadening = true;
     private String parentMode;
     private String id;
     private List<RunHandlerConfig> runHandlers;
@@ -106,6 +107,7 @@
             parentMode = inherit.parentMode;
             queryAnalysisEnabled = inherit.queryAnalysisEnabled;
             searchCommandExecutor = inherit.searchCommandExecutor;
+            autoBroadening = inherit.autoBroadening;
         }
     }
 
@@ -165,6 +167,26 @@
     }
 
     /**
+     * Get the autoBroadening.
+     * Automatic broadening results in any query returning zero hits across 
all commands will be wrapped in
+     *  parenthesis () and re-executed. This changes any 
DefaultOperatorClauses to OrClauses.
+     *
+     * @return the autoBroadening.
+     */
+    public boolean isAutoBroadening() {
+        return autoBroadening;
+    }
+
+    /**
+     * Set the autoBroadening.
+     *
+     * @param autoBroadening The autoBroadening to set.
+     */
+    public void setAutoBroadening(boolean autoBroadening) {
+        this.autoBroadening = autoBroadening;
+    }
+
+    /**
      * Get the queryAnalysisEnabled.
      *
      * @return the queryAnalysisEnabled.

Modified: 
branches/2.17/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchModeFactory.java
===================================================================
--- 
branches/2.17/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchModeFactory.java
   2008-09-16 21:56:01 UTC (rev 6818)
+++ 
branches/2.17/search-command-config-spi/src/main/java/no/sesat/search/mode/SearchModeFactory.java
   2008-09-16 21:57:26 UTC (rev 6819)
@@ -252,6 +252,7 @@
                         inherit != null ? inherit.getExecutor() : 
SearchMode.SearchCommandExecutorConfig.SEQUENTIAL));
 
                 fillBeanProperty(mode, inherit, "analysis", ParseType.Boolean, 
modeE, "false");
+                fillBeanProperty(mode, inherit, "autoBroadening", 
ParseType.Boolean, modeE, "true");
 
                 mode.setRunTransformers(getRunTransformers(modeE, inherit));
                 mode.setRunHandlers(getRunHandlers(modeE, inherit));

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

Reply via email to