Author: mickw
Date: 2006-04-03 08:56:26 +0200 (Mon, 03 Apr 2006)
New Revision: 2693
Modified:
trunk/src/java/no/schibstedsok/front/searchportal/command/NewsSearchCommand.java
trunk/src/java/no/schibstedsok/front/searchportal/query/Query.java
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/AbstractQuery.java
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/PhraseClauseImpl.java
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/WordClauseImpl.java
trunk/src/java/no/schibstedsok/front/searchportal/query/token/RegExpEvaluatorFactory.java
trunk/src/java/no/schibstedsok/front/searchportal/query/token/TokenPredicate.java
trunk/src/java/no/schibstedsok/front/searchportal/query/transform/PrefixRemoverTransformer.java
Log:
compile errors fixed from last commit regarding SEARCH-390 & SEARCH-489.
Modified:
trunk/src/java/no/schibstedsok/front/searchportal/command/NewsSearchCommand.java
===================================================================
---
trunk/src/java/no/schibstedsok/front/searchportal/command/NewsSearchCommand.java
2006-04-03 06:17:39 UTC (rev 2692)
+++
trunk/src/java/no/schibstedsok/front/searchportal/command/NewsSearchCommand.java
2006-04-03 06:56:26 UTC (rev 2693)
@@ -103,9 +103,12 @@
}
private boolean containsJustThePrefix() {
- return context.getQuery().getRootClause() ==
context.getQuery().getFirstLeafClause()
- &&
(context.getQuery().getFirstLeafClause().getKnownPredicates().contains(TokenPredicate.NEWSPREFIX)
- ||
context.getQuery().getFirstLeafClause().getPossiblePredicates().contains(TokenPredicate.NEWSPREFIX));
+
+ final LeafClause firstLeaf = context.getQuery().getFirstLeafClause();
+
+ return context.getQuery().getRootClause() == firstLeaf
+ &&
(firstLeaf.getKnownPredicates().contains(TokenPredicate.NEWS_MAGIC)
+ ||
firstLeaf.getPossiblePredicates().contains(TokenPredicate.NEWS_MAGIC));
}
Modified: trunk/src/java/no/schibstedsok/front/searchportal/query/Query.java
===================================================================
--- trunk/src/java/no/schibstedsok/front/searchportal/query/Query.java
2006-04-03 06:17:39 UTC (rev 2692)
+++ trunk/src/java/no/schibstedsok/front/searchportal/query/Query.java
2006-04-03 06:56:26 UTC (rev 2693)
@@ -31,7 +31,7 @@
*
* @return the first leaf clause.
*/
- Clause getFirstLeafClause();
+ LeafClause getFirstLeafClause();
/** Return the number of terms in this query.
* Terms are represented by LeafClauses.
Modified:
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/AbstractQuery.java
===================================================================
---
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/AbstractQuery.java
2006-04-03 06:17:39 UTC (rev 2692)
+++
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/AbstractQuery.java
2006-04-03 06:56:26 UTC (rev 2693)
@@ -50,7 +50,7 @@
/**
* [EMAIL PROTECTED]
*/
- public Clause getFirstLeafClause() {
+ public LeafClause getFirstLeafClause() {
return finder.getFirstLeaf();
}
@@ -60,9 +60,9 @@
private final class FirstLeafFinder extends AbstractReflectionVisitor {
private boolean searching = true;
- private Clause firstLeaf;
+ private LeafClause firstLeaf;
- public synchronized Clause getFirstLeaf() {
+ public synchronized LeafClause getFirstLeaf() {
if( firstLeaf == null ){
// hasn't been run yet.
visit(getRootClause());
Modified:
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/PhraseClauseImpl.java
===================================================================
---
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/PhraseClauseImpl.java
2006-04-03 06:17:39 UTC (rev 2692)
+++
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/PhraseClauseImpl.java
2006-04-03 06:56:26 UTC (rev 2693)
@@ -34,14 +34,12 @@
final Collection<TokenPredicate> predicates = new ArrayList();
predicates.add(TokenPredicate.ALWAYSTRUE);
// Predicates from RegExpEvaluators
- predicates.add(TokenPredicate.PICTUREPREFIX);
- predicates.add(TokenPredicate.NEWSPREFIX);
- predicates.add(TokenPredicate.WIKIPEDIAPREFIX);
- predicates.add(TokenPredicate.TVPREFIX);
- predicates.add(TokenPredicate.COMPANYSUFFIX);
- predicates.add(TokenPredicate.WEATHERPREFIX);
- predicates.add(TokenPredicate.CATALOGUEPREFIX);
+ predicates.addAll(TokenPredicate.getTriggerTokenPredicates());
+
predicates.add(TokenPredicate.ORGNR);
+ predicates.add(TokenPredicate.COMPANYSUFFIX);
+ predicates.add(TokenPredicate.SITEPREFIX);
+
// Add all FastTokenPredicates
predicates.addAll(TokenPredicate.getFastTokenPredicates());
PREDICATES_APPLICABLE = Collections.unmodifiableCollection(predicates);
Modified:
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/WordClauseImpl.java
===================================================================
---
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/WordClauseImpl.java
2006-04-03 06:17:39 UTC (rev 2692)
+++
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/WordClauseImpl.java
2006-04-03 06:56:26 UTC (rev 2693)
@@ -35,14 +35,14 @@
final Collection<TokenPredicate> predicates = new ArrayList();
predicates.add(TokenPredicate.ALWAYSTRUE);
// Predicates from RegExpEvaluators
- predicates.add(TokenPredicate.PICTUREPREFIX);
- predicates.add(TokenPredicate.NEWSPREFIX);
- predicates.add(TokenPredicate.WIKIPEDIAPREFIX);
- predicates.add(TokenPredicate.TVPREFIX);
+ predicates.addAll(TokenPredicate.getMagicTokenPredicates());
+ predicates.addAll(TokenPredicate.getTriggerTokenPredicates());
+
+
predicates.add(TokenPredicate.COMPANYSUFFIX);
- predicates.add(TokenPredicate.WEATHERPREFIX);
- predicates.add(TokenPredicate.SKIINFOPREFIX);
- predicates.add(TokenPredicate.ONLYSKIINFOPREFIX);
+ predicates.add(TokenPredicate.ORGNR);
+ predicates.add(TokenPredicate.SITEPREFIX);
+
// Add all FastTokenPredicates
predicates.addAll(TokenPredicate.getFastTokenPredicates());
PREDICATES_APPLICABLE = Collections.unmodifiableCollection(predicates);
Modified:
trunk/src/java/no/schibstedsok/front/searchportal/query/token/RegExpEvaluatorFactory.java
===================================================================
---
trunk/src/java/no/schibstedsok/front/searchportal/query/token/RegExpEvaluatorFactory.java
2006-04-03 06:17:39 UTC (rev 2692)
+++
trunk/src/java/no/schibstedsok/front/searchportal/query/token/RegExpEvaluatorFactory.java
2006-04-03 06:56:26 UTC (rev 2693)
@@ -104,37 +104,31 @@
final String tokenName = evaluator.getAttribute("token");
LOG.debug(" ->[EMAIL PROTECTED]: " + tokenName);
- try {
- final TokenPredicate token =
TokenPredicate.valueOf(tokenName);
+ final TokenPredicate token = TokenPredicate.valueOf(tokenName);
- final boolean queryDep =
Boolean.parseBoolean(evaluator.getAttribute("query-dependant"));
- LOG.debug(" ->[EMAIL PROTECTED]: " + queryDep);
+ final boolean queryDep =
Boolean.parseBoolean(evaluator.getAttribute("query-dependant"));
+ LOG.debug(" ->[EMAIL PROTECTED]: " + queryDep);
- final Collection compiled = new ArrayList();
+ final Collection compiled = new ArrayList();
- final NodeList patterns = ((Element)
evaluator).getElementsByTagName("pattern");
- for (int j = 0; j < patterns.getLength(); ++j) {
- final Element pattern = (Element) patterns.item(j);
-
- final String expression =
pattern.getFirstChild().getNodeValue();
- LOG.debug(" --->pattern: " + expression);
-
- // (^|\s) or ($|\s) is neccessary to avoid matching
fragments of words.
- final String prefix = expression.startsWith("^") ? ""
: "(^|\\s)";
- final String suffix = expression.endsWith("$") ? "" :
"($|\\s)";
- // compile pattern
- final Pattern p = Pattern.compile(prefix + expression
+ suffix, REG_EXP_OPTIONS);
- compiled.add(p);
- }
+ final NodeList patterns = ((Element)
evaluator).getElementsByTagName("pattern");
+ for (int j = 0; j < patterns.getLength(); ++j) {
+ final Element pattern = (Element) patterns.item(j);
- final RegExpTokenEvaluator regExpTokenEvaluator = new
RegExpTokenEvaluator(compiled, queryDep);
- regExpEvaluators.put(token, regExpTokenEvaluator);
-
- } catch (NoSuchFieldException ex) {
- LOG.error(ERR_COULD_NOT_FIND_TOKEN_PREDICATE, ex);
- } catch (IllegalAccessException ex) {
- LOG.error(ERR_COULD_NOT_FIND_TOKEN_PREDICATE, ex);
+ final String expression =
pattern.getFirstChild().getNodeValue();
+ LOG.debug(" --->pattern: " + expression);
+
+ // (^|\s) or ($|\s) is neccessary to avoid matching
fragments of words.
+ final String prefix = expression.startsWith("^") ? "" :
"(^|\\s)";
+ final String suffix = expression.endsWith("$") ? "" :
"($|\\s)";
+ // compile pattern
+ final Pattern p = Pattern.compile(prefix + expression +
suffix, REG_EXP_OPTIONS);
+ compiled.add(p);
}
+
+ final RegExpTokenEvaluator regExpTokenEvaluator = new
RegExpTokenEvaluator(compiled, queryDep);
+ regExpEvaluators.put(token, regExpTokenEvaluator);
+
}
LOG.debug("Parsing " + SearchConstants.REGEXP_EVALUATOR_XMLFILE +
" finished");
}
Modified:
trunk/src/java/no/schibstedsok/front/searchportal/query/token/TokenPredicate.java
===================================================================
---
trunk/src/java/no/schibstedsok/front/searchportal/query/token/TokenPredicate.java
2006-04-03 06:17:39 UTC (rev 2692)
+++
trunk/src/java/no/schibstedsok/front/searchportal/query/token/TokenPredicate.java
2006-04-03 06:56:26 UTC (rev 2693)
@@ -11,6 +11,7 @@
import java.util.Set;
import no.schibstedsok.front.searchportal.query.token.TokenEvaluatorFactory;
import org.apache.commons.collections.Predicate;
+import org.apache.taglibs.standard.tag.common.core.SetSupport;
/** Implementation of org.apache.commons.collections.Predicate for the terms
in the Query.
* Predicates use TokenEvaluators to prove the Predicate's validity to the
Query.
@@ -78,6 +79,9 @@
// RegExp TokenPredicates -- prefixes
SITEPREFIX (Type.REGEX),
+ // RegExp TokenPredicates -- suffixes
+ COMPANYSUFFIX (Type.REGEX),
+
// RegExp TokenPredicates -- general expression
ORGNR (Type.REGEX),
PHONENUMBER (Type.REGEX),
@@ -100,6 +104,8 @@
* it ensures FAST_TOKENS will not be null.
**/
private static final class Sets{
+ public static final Set<TokenPredicate> MAGIC_TOKENS = new
HashSet<TokenPredicate>();
+ public static final Set<TokenPredicate> TRIGGER_TOKENS = new
HashSet<TokenPredicate>();
public static final Set<TokenPredicate> FAST_TOKENS = new
HashSet<TokenPredicate>();
}
@@ -122,8 +128,15 @@
TokenPredicate(final Type type) {
fastListName = null;
this.type = type;
- if( type == Type.FAST ){
- Sets.FAST_TOKENS.add(this);
+
+ if( type == Type.REGEX ){
+
+ if( name().endsWith("_MAGIC")){
+ Sets.MAGIC_TOKENS.add(this);
+
+ }else if( name().endsWith("_TRIGGER")){
+ Sets.TRIGGER_TOKENS.add(this);
+ }
}
}
@@ -170,6 +183,18 @@
return Collections.unmodifiableSet(Sets.FAST_TOKENS);
}
+ /** Utility method to use all MagicTokenPredicates in existance.
+ */
+ public static Set<TokenPredicate> getMagicTokenPredicates() {
+ return Collections.unmodifiableSet(Sets.MAGIC_TOKENS);
+ }
+
+ /** Utility method to use all TriggerTokenPredicates in existance.
+ */
+ public static Set<TokenPredicate> getTriggerTokenPredicates() {
+ return Collections.unmodifiableSet(Sets.TRIGGER_TOKENS);
+ }
+
/**
* Evaluates to true if fastListName occurs in the query. This method uses
a
* TokenEvaluatorFactory to get a TokenEvaluator
Modified:
trunk/src/java/no/schibstedsok/front/searchportal/query/transform/PrefixRemoverTransformer.java
===================================================================
---
trunk/src/java/no/schibstedsok/front/searchportal/query/transform/PrefixRemoverTransformer.java
2006-04-03 06:17:39 UTC (rev 2692)
+++
trunk/src/java/no/schibstedsok/front/searchportal/query/transform/PrefixRemoverTransformer.java
2006-04-03 06:56:26 UTC (rev 2693)
@@ -23,18 +23,7 @@
*/
public final class PrefixRemoverTransformer extends AbstractQueryTransformer {
- private static final Collection<TokenPredicate> DEFAULT_PREFIXES =
Collections.unmodifiableCollection(
- Arrays.asList(
- TokenPredicate.SITEPREFIX,
- TokenPredicate.CATALOGUEPREFIX,
- TokenPredicate.PICTUREPREFIX,
- TokenPredicate.SKIINFOPREFIX,
- TokenPredicate.NEWSPREFIX,
- TokenPredicate.NEWSPREFIX,
- TokenPredicate.WIKIPEDIAPREFIX,
- TokenPredicate.TVPREFIX,
- TokenPredicate.WEATHERPREFIX
- ));
+ private static final Set<TokenPredicate> DEFAULT_PREFIXES =
TokenPredicate.getMagicTokenPredicates();
private static final String BLANK = "";
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits