Author: daniele
Date: 2007-02-21 13:05:59 +0100 (Wed, 21 Feb 2007)
New Revision: 4492
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
Log:
new logic in search command.
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-02-21 11:35:35 UTC (rev 4491)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueSearchCommand.java
2007-02-21 12:05:59 UTC (rev 4492)
@@ -37,10 +37,10 @@
private String queryTwo = null;
private String queryName = "";
private boolean searchForName = false;
- private List<String> terms = new ArrayList<String>();
private boolean searchForInfoPage = false;
+ private String sortBy="kw"; // defualtsøket er på keyword
+
-
/** Creates a new catalogue search command.
* TODO. Rewrite from scratch. This is insane.
**/
@@ -59,25 +59,47 @@
if(getSingleParameter("companyid")!=null){
searchForInfoPage=true;
}
+
+ if(getSingleParameter("userSortBy")!=null
+ && getSingleParameter("userSortBy").length()>0){
+ sortBy=getSingleParameter("userSortBy");
+ }
+
+
}
/** TODO comment me. **/
public SearchResult execute() {
LOG.debug("execute()");
-
- // kør vanligt søk, keywords.
- searchForName=false;
+
+ // hvis det er keyword sortering, skal vi
+ // først kjøre keyword søket.
+ if(sortBy.equals("kw")){
+ searchForName=false;
+ }else{
+ searchForName=true;
+ }
+ super.performQueryTransformation();
+ LOG.info("1. Search, "+getTransformedQuery());
SearchResult result = super.execute();
- searchForName=true;
-
+ // hvis det er sortert etter Keyword, et det
+ // navnsøk vi skal kjøre her.
+ if(sortBy.equals("kw")){
+ searchForName=true;
+ }else{
+ searchForName=false;
+ }
+ super.performQueryTransformation();
+ LOG.info("2. Search, "+getTransformedQuery());
+
// søk etter firmanavn
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>();
@@ -120,78 +142,23 @@
*
*/
protected void visitImpl(final LeafClause clause) {
- String transformed = getTransformedTerm(clause);
- terms.add(transformed);
- appendToQueryRepresentation(transformed);
- }
-
-
- @Override
- public String getTransformedQuery() {
- String query="";
- if(searchForInfoPage){
- return super.getTransformedQuery();
- }
+ String transformed = getTransformedTerm(clause);
- if(!searchForName){
- String query1="(";
- String query2="(";
- // (lemiypcfkeywords:ord1 AND lemiypcfkeywords:ord2 AND
lemiypcfkeywords:ord3) ANY
- // (lemiypcfkeywordslow:ord1 AND lemiypcfkeywordslow:ord2 AND
lemiypcfkeywordslow:ord3)
-
- Iterator<String> it = terms.iterator();
- for(;it.hasNext();){
- String t = it.next();
- query1 += "lemiypcfkeywords:"+t;
- query2 += "lemiypcfkeywordslow:"+t;
-
- // hvis det finnes flere
- if(it.hasNext()){
- query1 += " "+QL_AND+" ";
- query2 += " "+QL_AND+" ";
- }
- }
-
- // close queries.
- query1 += ") ANY";
- query2 += ")";
- query = query1 + query2;
-
+ if(searchForName){
+ LOG.info("Add transformed to name query \""+transformed+"\"");
+ appendToQueryRepresentation("(");
+ appendToQueryRepresentation("(iypcfphnavn:"+transformed+")");
+ appendToQueryRepresentation(" ANDNOT (");
+ appendToQueryRepresentation("(lemiypcfkeywords:"+transformed+")
OR ");
+
appendToQueryRepresentation("(lemiypcfkeywordslow:"+transformed+")");
+ appendToQueryRepresentation(")");
+ appendToQueryRepresentation(")");
}else{
- String query1 = " (";
- String query2 = " (";
- String query3 = " (";
-
- // eksempel på query.
- // query1 = (iypcfphnavn:ord1 AND iypcfphnavn:ord2 AND
iypcfphnavn:ord3) ANDNOT (
- // query2 = (lemiypcfkeywords:ord1 AND lemiypcfkeywords:ord2
AND lemiypcfkeywords:ord3) OR
- // query3 = (lemiypcfkeywordslow:ord1 AND
lemiypcfkeywordslow:ord2 AND lemiypcfkeywordslow:ord3))
-
- Iterator<String> it = terms.iterator();
- for(;it.hasNext();){
- String t = it.next();
- query1 += "iypcfphnavn:"+t;
- query2 += "lemiypcfkeywords:"+t;
- query3 += "lemiypcfkeywordslow:"+t;
-
- // hvis det finnes flere
- if(it.hasNext()){
- query1 += " "+QL_AND+" ";
- query2 += " "+QL_AND+" ";
- query3 += " "+QL_AND+" ";
- }
- }
-
- // close queries.
- query1 += ") ANDNOT (";
- query2 += ") OR";
- query3 += "))";
- query=query1+query2+query3;
- }
-
- return query;
+ LOG.info("Add transformed to keyword query
\""+transformed+"\"");
+ appendToQueryRepresentation("(lemiypcfkeywords:"+transformed+"
ANY lemiypcfkeywordslow:"+transformed+")");
+ }
}
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits