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<Predicate>,
Set<Predicate>)</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<Predicate>, Set<Predicate>)</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