Author: daniele
Date: 2007-03-04 21:07:24 +0100 (Sun, 04 Mar 2007)
New Revision: 4533
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
trunk/query-transform-spi/src/main/java/no/schibstedsok/searchportal/query/transform/CatalogueExactTitleMatchQueryTransformer.java
trunk/query-transform-spi/src/main/java/no/schibstedsok/searchportal/query/transform/CatalogueQueryTransformer.java
Log:
Tried to rewrite CatalogyeExactTitleQueryTrans. to visitor pattern, but did not
succeed, will try again later. First attempt at resolve a bug in query if user
tries to supply + - AND ANDNOT as parameter in query, not resolved yet, will
continue to look into issue as soon as possible.
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
2007-03-02 12:55:00 UTC (rev 4532)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
2007-03-04 20:07:24 UTC (rev 4533)
@@ -228,8 +228,11 @@
* [EMAIL PROTECTED]
*/
protected void visitImpl(final AndNotClause clause) {
- sb.append(QL_ANDNOT);
- clause.getFirstClause().accept(this);
+ // the first term can not be ANDNOT term.
+ if(sb.toString().trim().length()>0){
+ sb.append(QL_ANDNOT);
+ clause.getFirstClause().accept(this);
+ }
}
protected void visitImpl(final XorClause clause){
Modified:
trunk/query-transform-spi/src/main/java/no/schibstedsok/searchportal/query/transform/CatalogueExactTitleMatchQueryTransformer.java
===================================================================
---
trunk/query-transform-spi/src/main/java/no/schibstedsok/searchportal/query/transform/CatalogueExactTitleMatchQueryTransformer.java
2007-03-02 12:55:00 UTC (rev 4532)
+++
trunk/query-transform-spi/src/main/java/no/schibstedsok/searchportal/query/transform/CatalogueExactTitleMatchQueryTransformer.java
2007-03-04 20:07:24 UTC (rev 4533)
@@ -13,6 +13,7 @@
import no.schibstedsok.searchportal.query.OperationClause;
import no.schibstedsok.searchportal.query.OrClause;
import no.schibstedsok.searchportal.query.PhraseClause;
+import no.schibstedsok.searchportal.query.XorClause;
import no.schibstedsok.searchportal.query.parser.WordClauseImpl;
import org.apache.log4j.Logger;
@@ -30,63 +31,9 @@
private static final Logger LOG = Logger
.getLogger(CatalogueExactTitleMatchQueryTransformer.class);
- private transient boolean writtenStart = false;
-
- private transient Boolean visitingLast = null;
-
- private transient StringBuffer sb = new StringBuffer();
-
- /**
- *
- * @param clause
- * The clause to prefix.
- */
- public void visitImpl(final LeafClause clause) {
-
- if (!writtenStart) {
-
- sb = new StringBuffer();
- sb.append("iypnavnvisningnorm:\""
- + getTransformedTerms().get(clause));
-
- writtenStart = true;
- // also, if we got here without giving visitingLast a
value then
- // this is the only LeafClause in the query
- visitingLast = null == visitingLast;
-
- getTransformedTerms().put(clause, "");
- }
-
- if (!visitingLast && !visitingLast)
- sb.append(getTransformedTerms().get(clause));
-
- if (visitingLast) {
- sb.append(" " + getTransformedTerms().get(clause) +
"\"");
- getTransformedTerms().put(clause, sb.toString().trim());
- }
-
+ @Override
+ public String getTransformedQuery() {
+ return
"iypnavnvisningnorm:^\""+super.getTransformedQuery()+"\"$";
}
-
- private Map<Clause, String> getTransformedTerms() {
- return getContext().getTransformedTerms();
- }
-
- /**
- * [EMAIL PROTECTED]
- */
- protected void visitImpl(final DefaultOperatorClause clause) {
- // remember what visitingLast was
- final Boolean original = visitingLast;
- // turn it off. left child can never be the last term in the
query.
- visitingLast = false;
- clause.getFirstClause().accept(this);
- // restore visitingLast.
- visitingLast = original;
- if (null == visitingLast) {
- // if it is yet to be assigned an value (ie this is the
topmost
- // DoubleOperatorClause) then assign true.
- visitingLast = true;
- }
- clause.getSecondClause().accept(this);
- }
+
}
Modified:
trunk/query-transform-spi/src/main/java/no/schibstedsok/searchportal/query/transform/CatalogueQueryTransformer.java
===================================================================
---
trunk/query-transform-spi/src/main/java/no/schibstedsok/searchportal/query/transform/CatalogueQueryTransformer.java
2007-03-02 12:55:00 UTC (rev 4532)
+++
trunk/query-transform-spi/src/main/java/no/schibstedsok/searchportal/query/transform/CatalogueQueryTransformer.java
2007-03-04 20:07:24 UTC (rev 4533)
@@ -30,34 +30,44 @@
/** TODO comment me. * */
protected void visitImpl(final LeafClause clause) {
- StringBuilder sb = new StringBuilder();
- sb.append("(");
- sb.append("(iypcfphnavn:" + getTransformedTerms().get(clause)
+ ") ANY ");
- sb.append("(lemiypcfkeywords:" +
getTransformedTerms().get(clause) + ") ANY");
- sb.append("(lemiypcfkeywordslow:" +
getTransformedTerms().get(clause) + ")");
- sb.append(")");
- getContext().getTransformedTerms().put(clause, sb.toString());
+ if (!getTransformedTerms().get(clause).equals("*")) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("(");
+ sb.append("iypcfphnavn:" +
getTransformedTerms().get(clause)
+ + " ANY ");
+ sb.append("lemiypcfkeywords:" +
getTransformedTerms().get(clause)
+ + " ANY ");
+ sb.append("lemiypcfkeywordslow:"
+ + getTransformedTerms().get(clause));
+ sb.append(")");
+ getContext().getTransformedTerms().put(clause,
sb.toString());
+ }
}
-
/**
* Legg til iypcfnavn forran alle ord.
*
*/
protected void visitImpl(final PhraseClause clause) {
- StringBuilder sb = new StringBuilder();
- sb.append("(");
- sb.append("(iypcfnavn:" + getTransformedTerms().get(clause) +
") ANY ");
- sb.append("(lemiypcfkeywords:" +
getTransformedTerms().get(clause) + ") ANY");
- sb.append("(lemiypcfkeywordslow:" +
getTransformedTerms().get(clause) + ")");
- sb.append(")");
- getContext().getTransformedTerms().put(clause, sb.toString());
+
+ if (!getTransformedTerms().get(clause).equals("*")) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("(");
+ sb.append("iypcfnavn:" +
getTransformedTerms().get(clause)
+ + " ANY ");
+ sb.append("lemiypcfkeywords:" +
getTransformedTerms().get(clause)
+ + " ANY ");
+ sb.append("lemiypcfkeywordslow:"
+ + getTransformedTerms().get(clause));
+ sb.append(")");
+ getContext().getTransformedTerms().put(clause,
sb.toString());
+ }
}
-
- private Map<Clause,String> getTransformedTerms() {
- return getContext().getTransformedTerms();
- }
-
+
+ private Map<Clause, String> getTransformedTerms() {
+ return getContext().getTransformedTerms();
+ }
+
protected void visitImpl(final AndClause clause) {
clause.getFirstClause().accept(this);
clause.getSecondClause().accept(this);
@@ -95,5 +105,5 @@
*/
protected void visitImpl(final AndNotClause clause) {
clause.getFirstClause().accept(this);
- }
+ }
}
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits