Author: ssmiweve
Date: 2008-10-27 12:04:59 +0100 (Mon, 27 Oct 2008)
New Revision: 6894
Added:
trunk/generic.sesam/query-transform-config/src/main/java/no/sesat/search/query/transform/LowercaseQueryTransformerConfig.java
trunk/generic.sesam/query-transform-control/src/main/java/no/sesat/search/query/transform/LowercaseQueryTransformer.java
Modified:
trunk/generic.sesam/war/src/main/conf/modes.xml
Log:
LowercaseQueryTransformer added. Lowercase every character in every term in the
query (against the Site's locale).
SEARCH-4933
Added:
trunk/generic.sesam/query-transform-config/src/main/java/no/sesat/search/query/transform/LowercaseQueryTransformerConfig.java
===================================================================
---
trunk/generic.sesam/query-transform-config/src/main/java/no/sesat/search/query/transform/LowercaseQueryTransformerConfig.java
(rev 0)
+++
trunk/generic.sesam/query-transform-config/src/main/java/no/sesat/search/query/transform/LowercaseQueryTransformerConfig.java
2008-10-27 11:04:59 UTC (rev 6894)
@@ -0,0 +1,33 @@
+/*
+ * Copyright (2008) Schibsted Søk AS
+ * This file is part of SESAT.
+ *
+ * SESAT is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * SESAT is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with SESAT. If not, see <http://www.gnu.org/licenses/>.
+ */
+package no.sesat.search.query.transform;
+
+import
no.sesat.search.query.transform.AbstractQueryTransformerConfig.Controller;
+
+
+/**
+ * Configuration bean for LowercaseQueryTransformer.
+ *
+ * A transformer to lowercase all character in each term.
+ *
+ * @version $Id$
+ *
+ *
+ */
[EMAIL PROTECTED]("LowercaseQueryTransformer")
+public final class LowercaseQueryTransformerConfig extends
AbstractQueryTransformerConfig {}
Property changes on:
trunk/generic.sesam/query-transform-config/src/main/java/no/sesat/search/query/transform/LowercaseQueryTransformerConfig.java
___________________________________________________________________
Name: svn:keywords
+ Id
Added:
trunk/generic.sesam/query-transform-control/src/main/java/no/sesat/search/query/transform/LowercaseQueryTransformer.java
===================================================================
---
trunk/generic.sesam/query-transform-control/src/main/java/no/sesat/search/query/transform/LowercaseQueryTransformer.java
(rev 0)
+++
trunk/generic.sesam/query-transform-control/src/main/java/no/sesat/search/query/transform/LowercaseQueryTransformer.java
2008-10-27 11:04:59 UTC (rev 6894)
@@ -0,0 +1,77 @@
+/*
+ * Copyright (2008) Schibsted Søk AS
+ * This file is part of SESAT.
+ *
+ * SESAT is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * SESAT is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with SESAT. If not, see <http://www.gnu.org/licenses/>.
+ */
+package no.sesat.search.query.transform;
+
+import java.util.Map;
+import java.util.regex.Pattern;
+import java.util.regex.Matcher;
+import no.sesat.search.query.Clause;
+import no.sesat.search.query.DoubleOperatorClause;
+import no.sesat.search.query.LeafClause;
+import no.sesat.search.query.OperationClause;
+import org.apache.log4j.Logger;
+
+/**
+ * @see LowercaseQueryTransformerConfig
+ *
+ * @version $Id$
+ */
+public final class LowercaseQueryTransformer extends AbstractQueryTransformer {
+
+ private static final Logger LOG =
Logger.getLogger(LowercaseQueryTransformer.class);
+
+ public LowercaseQueryTransformer(final QueryTransformerConfig config){}
+
+ /**
+ *
+ * @param clause The clause to prefix.
+ */
+ public void visitImpl(final LeafClause clause) {
+
+ final String term = getTransformedTerms().get(clause);
+
+ if(null != term && term.length()>0){
+
+ getTransformedTerms().put(
+ clause,
+
getTransformedTerms().get(clause).toLowerCase(getContext().getSite().getLocale()));
+ }
+ }
+
+ /**
+ *
+ * @param clause The clause to prefix.
+ */
+ public void visitImpl(final DoubleOperatorClause clause) {
+ clause.getFirstClause().accept(this);
+ clause.getSecondClause().accept(this);
+ }
+
+ /**
+ *
+ * @param clause The clause to prefix.
+ */
+ public void visitImpl(final OperationClause clause) {
+ clause.getFirstClause().accept(this);
+ }
+
+ private Map<Clause,String> getTransformedTerms() {
+ return getContext().getTransformedTerms();
+ }
+
+}
Property changes on:
trunk/generic.sesam/query-transform-control/src/main/java/no/sesat/search/query/transform/LowercaseQueryTransformer.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: trunk/generic.sesam/war/src/main/conf/modes.xml
===================================================================
--- trunk/generic.sesam/war/src/main/conf/modes.xml 2008-10-27 11:00:28 UTC
(rev 6893)
+++ trunk/generic.sesam/war/src/main/conf/modes.xml 2008-10-27 11:04:59 UTC
(rev 6894)
@@ -280,8 +280,10 @@
<term-prefix prefix="list_entry"/>
<!-- Strip out the quotes around the phrase -->
<regexp regexp=""" replacement=""/>
- <!-- Escape the whitespace so that solr treats the whole query
as one token. -->
+ <!-- Escape the whitespace so that solr treats the whole query
as one token -->
<regexp regexp=" " replacement="\\ "/>
+ <!-- Lowercase the query as the upcoming wildcard will disable
all lucene analyzers -->
+ <lowercase/>
<!-- Suffix the query with a wildcard. Otherwise it wouldn't
be a suggestion ;-) -->
<regexp regexp="$" replacement="*"/>
</query-transformers>
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits