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

Reply via email to