Author: sshafroi
Date: 2009-01-07 14:19:11 +0100 (Wed, 07 Jan 2009)
New Revision: 7136

Modified:
   
branches/2.18/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
   
branches/2.18/query-api/src/main/java/no/sesat/search/query/parser/AbstractClause.java
   
branches/2.18/query-api/src/main/java/no/sesat/search/query/parser/AbstractLeafClause.java
   
branches/2.18/query-api/src/main/java/no/sesat/search/query/parser/AbstractUnaryClause.java
   
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/DeadTokenEvaluationEngineImpl.java
   
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/TokenEvaluationEngineImpl.java
   
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
Log:
SEARCH-5271 - Feil sortering velges av s?\195?\184kefronten (periodisk)

The problem was that constructed clauses for spell-suggestions where cached. 
This clauses was created with the DeadTokenEvaluationEngineImpl and no 
predicates created. Then later when a proper search was done, then these 
clauses where found in cache, and reused, and was missing the needed predicates.



Modified: 
branches/2.18/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
===================================================================
--- 
branches/2.18/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java  
    2009-01-07 13:14:09 UTC (rev 7135)
+++ 
branches/2.18/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java  
    2009-01-07 13:19:11 UTC (rev 7136)
@@ -162,29 +162,28 @@
             }
         };
 
-        if(cxt.getSearchMode().isEvaluation()){
+        final TokenEvaluationEngine.Context tokenEvalFactoryCxt =
+                ContextWrapper.wrap(
+                TokenEvaluationEngine.Context.class,
+                context,
+                new QueryStringContext() {
+                    public String getQueryString() {
+                        return queryStr;
+                    }
+                },
+                new BaseContext() {
+                    public String getUniqueId() {
+                        return datamodel.getParameters().getUniqueId();
+                    }
+                },
+                siteCxt);
 
-            final TokenEvaluationEngine.Context tokenEvalFactoryCxt =
-                    ContextWrapper.wrap(
-                        TokenEvaluationEngine.Context.class,
-                        context,
-                        new QueryStringContext() {
-                            public String getQueryString() {
-                                return queryStr;
-                            }
-                        },
-                        new BaseContext(){
-                            public String getUniqueId(){
-                                return datamodel.getParameters().getUniqueId();
-                            }
-                        },
-                        siteCxt);
-
+        if(cxt.getSearchMode().isEvaluation()){
             engine = new TokenEvaluationEngineImpl(tokenEvalFactoryCxt);
 
         }else{
             // use a dead token evaluation engine. false and stale evaluation 
so it is not cached.
-            engine = new DeadTokenEvaluationEngineImpl(queryStr, 
siteCxt.getSite());
+            engine = new DeadTokenEvaluationEngineImpl(tokenEvalFactoryCxt);
         }
 
         // queryStr parser

Modified: 
branches/2.18/query-api/src/main/java/no/sesat/search/query/parser/AbstractClause.java
===================================================================
--- 
branches/2.18/query-api/src/main/java/no/sesat/search/query/parser/AbstractClause.java
      2009-01-07 13:14:09 UTC (rev 7135)
+++ 
branches/2.18/query-api/src/main/java/no/sesat/search/query/parser/AbstractClause.java
      2009-01-07 13:19:11 UTC (rev 7136)
@@ -190,13 +190,6 @@
         return success;
     }
 
-    /** We need a no-argument constructor for serialization. */
-    protected AbstractClause() {
-        this.term = null;
-        this.knownPredicates = null;
-        this.possiblePredicates = null;
-    }
-
     /**
      * Create clause with the given term, known and possible predicates.
      * @param term the term (query string) for this clause.

Modified: 
branches/2.18/query-api/src/main/java/no/sesat/search/query/parser/AbstractLeafClause.java
===================================================================
--- 
branches/2.18/query-api/src/main/java/no/sesat/search/query/parser/AbstractLeafClause.java
  2009-01-07 13:14:09 UTC (rev 7135)
+++ 
branches/2.18/query-api/src/main/java/no/sesat/search/query/parser/AbstractLeafClause.java
  2009-01-07 13:19:11 UTC (rev 7136)
@@ -124,13 +124,6 @@
         return clause;
     }
 
-    /** You must use <CODE>AbstractLeafClause(String, Set&lt;Predicate&gt;, 
Set&lt;Predicate&gt;)</CODE> instead.
-     * This constructor will throw an IllegalArgumentException.
-     **/
-    protected AbstractLeafClause() {
-        throw new 
IllegalArgumentException(ERR_MUST_ALWAYS_USE_ARGED_CONSTRUCTOR);
-    }
-
     /**
      * Create clause with the given term, known and possible predicates.
      * @param term the term (query string) for this clause.

Modified: 
branches/2.18/query-api/src/main/java/no/sesat/search/query/parser/AbstractUnaryClause.java
===================================================================
--- 
branches/2.18/query-api/src/main/java/no/sesat/search/query/parser/AbstractUnaryClause.java
 2009-01-07 13:14:09 UTC (rev 7135)
+++ 
branches/2.18/query-api/src/main/java/no/sesat/search/query/parser/AbstractUnaryClause.java
 2009-01-07 13:19:11 UTC (rev 7136)
@@ -119,13 +119,6 @@
         return clause;
     }
 
-    /** You must use <CODE>AbstractOperationClause(String, 
Set&lt;Predicate&gt;, Set&lt;Predicate&gt;)</CODE> instead.
-     * This constructor will throw an IllegalArgumentException.
-     **/
-    protected AbstractUnaryClause() {
-        throw new 
IllegalArgumentException(ERR_MUST_ALWAYS_USE_ARGED_CONSTRUCTOR);
-    }
-
     /**
      * Create clause with the given term, known and possible predicates.
      * @param term the term (query string) for this clause.

Modified: 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/DeadTokenEvaluationEngineImpl.java
===================================================================
--- 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/DeadTokenEvaluationEngineImpl.java
        2009-01-07 13:14:09 UTC (rev 7135)
+++ 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/DeadTokenEvaluationEngineImpl.java
        2009-01-07 13:19:11 UTC (rev 7136)
@@ -17,9 +17,6 @@
  */
 package no.sesat.search.query.token;
 
-import no.sesat.search.query.Clause;
-import no.sesat.search.query.Query;
-import no.sesat.search.site.Site;
 
 /** A dead evaluation engine. Used when evaluation is turned off.
  * Rather than solely relying on the ALWAYS_FALSE_EVALUTOR
@@ -28,52 +25,21 @@
  *
  * @version $Id$
  */
-public final class DeadTokenEvaluationEngineImpl implements 
TokenEvaluationEngine {
+public final class DeadTokenEvaluationEngineImpl extends 
TokenEvaluationEngineImpl {
 
-    private final String queryStr;
-
-    private final Site site;
-
-    public DeadTokenEvaluationEngineImpl(final String queryStr, final Site 
site) {
-        this.queryStr = queryStr;
-        this.site = site;
+    public DeadTokenEvaluationEngineImpl(final Context cxt) {
+        super(cxt);
     }
 
-    private State state;
-
+    @Override
     public TokenEvaluator getEvaluator(TokenPredicate token) throws 
EvaluationException {
         return DEAD_EVALUATOR;
     }
 
-    public String getQueryString() {
-        return queryStr;
+    @Override
+    public boolean evaluate(final TokenPredicate token) {
+        throw new EvaluationRuntimeException(
+                new EvaluationException("DEAD_EVALUATOR", null));
     }
 
-    public Site getSite() {
-        return site;
-    }
-
-    public boolean evaluate(TokenPredicate token) {
-        return false;
-    }
-
-    public boolean evaluateTerm(TokenPredicate predicate, String term) {
-        return false;
-    }
-
-    public boolean evaluateClause(TokenPredicate predicate, Clause clause) {
-        return false;
-    }
-
-    public boolean evaluateQuery(TokenPredicate predicate, Query query) {
-        return false;
-    }
-
-    public State getState() {
-        return state;
-    }
-
-    public void setState(State state) {
-        this.state = state;
-    }
 }

Modified: 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/TokenEvaluationEngineImpl.java
===================================================================
--- 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/TokenEvaluationEngineImpl.java
    2009-01-07 13:14:09 UTC (rev 7135)
+++ 
branches/2.18/query-api/src/main/java/no/sesat/search/query/token/TokenEvaluationEngineImpl.java
    2009-01-07 13:19:11 UTC (rev 7136)
@@ -42,7 +42,7 @@
  *
  * @version $Id$
  */
-public final class TokenEvaluationEngineImpl implements TokenEvaluationEngine {
+public class TokenEvaluationEngineImpl implements TokenEvaluationEngine {
 
     // Constants -----------------------------------------------------
 

Modified: 
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
===================================================================
--- 
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
      2009-01-07 13:14:09 UTC (rev 7135)
+++ 
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
      2009-01-07 13:19:11 UTC (rev 7136)
@@ -731,30 +731,27 @@
         } else {
 
             final TokenEvaluationEngine newEngine;
-
-            if(evaluationEnabled){
-
-                final TokenEvaluationEngine.Context tokenEvalFactoryCxt = 
ContextWrapper.wrap(
-                        TokenEvaluationEngine.Context.class,
-                        context,
-                        new BaseContext() {
-                            public String getQueryString() {
-                                return queryString;
-                            }
-                            public Site getSite() {
-                                return datamodel.getSite().getSite();
-                            }
-                            public String getUniqueId(){
-                                return datamodel.getParameters().getUniqueId();
-                            }
+            final TokenEvaluationEngine.Context tokenEvalFactoryCxt = 
ContextWrapper.wrap(
+                    TokenEvaluationEngine.Context.class,
+                    context,
+                    new BaseContext() {
+                        public String getQueryString() {
+                            return queryString;
                         }
-                );
-
+                        public Site getSite() {
+                            return datamodel.getSite().getSite();
+                        }
+                        public String getUniqueId(){
+                            return datamodel.getParameters().getUniqueId();
+                        }
+                    }
+            );
+            if(evaluationEnabled){
                 // This will among other things perform the evaluator searches 
- local and remote.
                 newEngine = new TokenEvaluationEngineImpl(tokenEvalFactoryCxt);
             }else{
                 // no evaluators will be called.
-                newEngine = new DeadTokenEvaluationEngineImpl(queryString, 
datamodel.getSite().getSite());
+                newEngine = new 
DeadTokenEvaluationEngineImpl(tokenEvalFactoryCxt);
             }
 
             // queryStr parser

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

Reply via email to