Author: daniele
Date: 2007-01-22 13:13:25 +0100 (Mon, 22 Jan 2007)
New Revision: 4359
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueAdsSearchCommand.java
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
Log:
Added company name search in Catalogue search command, modified
CatalogueAdsSearch command to use new query.
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueAdsSearchCommand.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueAdsSearchCommand.java
2007-01-22 11:41:15 UTC (rev 4358)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueAdsSearchCommand.java
2007-01-22 12:13:25 UTC (rev 4359)
@@ -8,24 +8,20 @@
package no.schibstedsok.searchportal.mode.command;
+import java.util.Formatter;
import java.util.Map;
-import org.apache.log4j.Logger;
-
-import no.fast.ds.search.SearchParameter;
-import
no.schibstedsok.searchportal.mode.command.AbstractSearchCommand.ReconstructedQuery;
import no.schibstedsok.searchportal.query.LeafClause;
import no.schibstedsok.searchportal.query.Query;
-import no.schibstedsok.searchportal.query.Visitor;
-import no.schibstedsok.searchportal.query.XorClause;
-import no.schibstedsok.searchportal.result.SearchResult;
+import org.apache.log4j.Logger;
+
/**
*
* A search command for the web search.
* @author magnuse
*/
-public class CatalogueAdsSearchCommand extends FastSearchCommand {
+public class CatalogueAdsSearchCommand extends AdvancedFastSearchCommand {
private static final Logger LOG =
Logger.getLogger(CatalogueAdsSearchCommand.class);
@@ -55,23 +51,76 @@
}
+ String subQuery1 = "";
+ String subQuery2 = "";
+ String subQuery3 = "";
+ String subQuery4 = "";
+ String subQuery5 = "";
+
/**
* Legg til iypcfspkeywords forran alle ord.
*
*/
protected void visitImpl(final LeafClause clause) {
- appendToQueryRepresentation("iypcfspkeywords:");
- super.visitImpl(clause);
-
+
+
+ subQuery1 += (subQuery1.length()>0?QL_AND:" ") + "
iypcfspkeywords1:"+clause.getTerm()+" ";
+ subQuery2 += (subQuery2.length()>0?QL_AND:" ") + "
iypcfspkeywords2:"+clause.getTerm()+" ";
+ subQuery3 += (subQuery3.length()>0?QL_AND:" ") + "
iypcfspkeywords3:"+clause.getTerm()+" ";
+ subQuery4 += (subQuery4.length()>0?QL_AND:" ") + "
iypcfspkeywords4:"+clause.getTerm()+" ";
+ subQuery5 += (subQuery5.length()>0?QL_AND:" ") + "
iypcfspkeywords5:"+clause.getTerm()+" ";
}
- /**
- * hent hele den transformerte querien.
- * Den innholder query to også for qeo.
- */
+ @Override
public String getTransformedQuery() {
- // hvis det finnes en ekstra query, legg til denne i søket.
- return queryTwo!=null ? super.getTransformedQuery()+"
iypcfspgeo:\""+queryTwo+"\"" : super.getTransformedQuery();
+ StringBuilder sb = new StringBuilder();
+ sb.append("( ");
+ sb.append(" (%5$s AND iypspgeo5:%6$s) OR ");
+ sb.append(" ( ");
+ sb.append(" (%5$s AND iypspgeo5:ingensteds) ANDNOT ");
+ sb.append(" (%5$s AND iypspgeo5:\"%6$s\") ");
+ sb.append(" ) ");
+ sb.append(") ");
+ sb.append("OR ");
+ sb.append("( ");
+ sb.append(" (%4$s AND iypspgeo4:%6$s) OR ");
+ sb.append(" ( ");
+ sb.append(" (%4$s AND iypspgeo4:ingensteds) ANDNOT ");
+ sb.append(" (%4$s AND iypspgeo4:\"%6$s\") ");
+ sb.append(" ) ");
+ sb.append(") ");
+ sb.append("OR ");
+ sb.append("( ");
+ sb.append(" (%3$s AND iypspgeo3:%6$s) OR ");
+ sb.append(" ( ");
+ sb.append(" (%3$s AND iypspgeo3:ingensteds) ANDNOT ");
+ sb.append(" (%3$s AND iypspgeo3:\"%6$s\") ");
+ sb.append(" ) ");
+ sb.append(") ");
+ sb.append("OR ");
+ sb.append("( ");
+ sb.append(" (%2$s AND iypspgeo2:\"%6$s\") OR ");
+ sb.append(" ( ");
+ sb.append(" (%2$s AND iypspgeo2:ingensteds) ANDNOT ");
+ sb.append(" (%2$s AND iypspgeo2:\"%6$s\") ");
+ sb.append(" ) ");
+ sb.append(") ");
+ sb.append("OR ");
+ sb.append("( ");
+ sb.append(" (%1$s AND iypspgeo1:\"%6$s\") OR ");
+ sb.append(" ( ");
+ sb.append(" (%1$s AND iypspgeo1:ingensteds) ANDNOT ");
+ sb.append(" (%1$s AND iypspgeo1:\"%6$s\") ");
+ sb.append(" ) ");
+ sb.append(")");
+
+ StringBuilder result = new StringBuilder();
+ Formatter formatter = new Formatter(result);
+
+ formatter.format(sb.toString(), subQuery1, subQuery2,
subQuery3,subQuery4, subQuery5,queryTwo);
+
+ LOG.info("Sponsorquery: "+result);
+ return result.toString();
}
}
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-01-22 11:41:15 UTC (rev 4358)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
2007-01-22 12:13:25 UTC (rev 4359)
@@ -11,6 +11,7 @@
import no.fast.ds.search.ISearchParameters;
import no.fast.ds.search.SearchParameter;
+import no.schibstedsok.searchportal.query.LeafClause;
import no.schibstedsok.searchportal.query.Query;
import no.schibstedsok.searchportal.result.BasicSearchResultItem;
import no.schibstedsok.searchportal.result.CatalogueSearchResultItem;
@@ -26,8 +27,9 @@
public class CatalogueSearchCommand extends AbstractSimpleFastSearchCommand {
private static final Logger LOG =
Logger.getLogger(CatalogueSearchCommand.class);
- private String queryTwo=null;
-
+ private String queryTwo = null;
+ private String queryName = "";
+ private boolean searchForName = false;
/** Creates a new catalogue search command.
* TODO. Rewrite from scratch. This is insane.
@@ -52,13 +54,23 @@
/** TODO comment me. **/
public SearchResult execute() {
LOG.info("execute()");
- LOG.info("Catalogue query is :" + getTransformedQuery());
- // kør vanligt søk.
- SearchResult result = super.execute();
-
+ // kør vanligt søk, keywords.
+ searchForName=false;
+ LOG.info("Søk med keyword query is :" + getTransformedQuery());
+ SearchResult result = super.execute();
+
+ // søk etter firmanavn
+ searchForName=true;
+ LOG.info("Søk med firmanavn query is :" + getTransformedQuery());
+ SearchResult nameQueryResult = super.execute();
+
+ // legg til navnsøk.
+ result.getResults().addAll(nameQueryResult.getResults());
+ result.setHitCount(result.getHitCount()+nameQueryResult.getHitCount());
+
// konverter til denne.
List<CatalogueSearchResultItem> nyResultListe = new
ArrayList<CatalogueSearchResultItem>();
@@ -89,11 +101,28 @@
/** TODO comment me. **/
public String getTransformedQuery() {
LOG.info("Catalogue Transformed Query");
+ String query=null;
- // hvis det finnes en ekstra query, legg til denne i søket.
- return queryTwo!=null ? super.getTransformedQuery()+"
iypcfgeo:\""+queryTwo+"\"" : super.getTransformedQuery();
+ if(searchForName){
+ // hvis det finnes en ekstra query, legg til denne i søket.
+ query = queryTwo!=null ? queryName +"
iypcfgeo:\""+queryTwo+"\"" : queryName;
+ }else{
+ query = queryTwo!=null ? super.getTransformedQuery()+"
iypcfgeo:\""+queryTwo+"\"" : super.getTransformedQuery();
+ }
+
+ return query;
}
+ /**
+ * Legg til iypcfspkeywords forran alle ord.
+ *
+ */
+ protected void visitImpl(final LeafClause clause) {
+//
+ queryName += " iypcfnavn:"+clause.getTerm()+" ";
+ appendToQueryRepresentation(clause.getTerm());
+// super.visitImpl(clause);
+ }
}
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits