Author: daniele
Date: 2007-04-23 14:20:51 +0200 (Mon, 23 Apr 2007)
New Revision: 4851
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueAdsSearchCommand.java
Log:
GULD-447: fix for special characters in query for sponsed links
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-04-23 11:25:00 UTC (rev 4850)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/CatalogueAdsSearchCommand.java
2007-04-23 12:20:51 UTC (rev 4851)
@@ -87,10 +87,13 @@
final ReconstructedQuery queryGeo
= createQuery(getSingleParameter(whereParameter));
- queryGeoString = queryGeo.getQuery().getQueryString();
+ queryGeoString =
queryGeo.getQuery().getQueryString().replaceAll("\\W", "").toLowerCase();
} else {
queryGeoString = DOMESTIC_SEARCH;
- }
+ }
+
+
+ originalQuery = super.getTransformedQuery().replaceAll("\\W",
"").toLowerCase();
}
/**
@@ -155,16 +158,15 @@
final SearchResultItem[] searchResults = new SearchResultItem[5];
for (SearchResultItem item : firstQueryResult.getResults()) {
+
+ Pattern p =
Pattern.compile("(^|;)"+originalQuery+queryGeoString+"(;|$)");
- Pattern p = Pattern.compile("^" + originalQuery
- + queryGeoString+".*|.*;" + originalQuery +
queryGeoString+".*");
-
int i = 0;
boolean found = false;
for(; i < 5 ; i++){
if(item.getField("iypspkeywords"+(i+1))!=null){
Matcher m =
p.matcher(item.getField("iypspkeywords"+(i+1)).trim().toLowerCase());
- found = m.matches();
+ found = m.find();
if(found){
break;
@@ -176,7 +178,16 @@
searchResults[i] = item;
LOG.info("Fant sponsortreff for plass " + (i+1) + ", " +
item.getField("iypspkeywords"+(i+1)));
}else{
- LOG.error("Fant IKKE sponsortreff, det er ikke mulig, " +
item);
+ LOG.error("Fant IKKE sponsortreff, det er ikke mulig.");
+
LOG.error("iypspkeywords5:"+item.getField("iypspkeywords5").trim().toLowerCase()+"\n"
+ +
"iypspkeywords4:"+item.getField("iypspkeywords4").trim().toLowerCase()+"\n"
+ +
"iypspkeywords3:"+item.getField("iypspkeywords3").trim().toLowerCase()+"\n"
+ +
"iypspkeywords2:"+item.getField("iypspkeywords2").trim().toLowerCase()+"\n"
+ +
"iypspkeywords1:"+item.getField("iypspkeywords1").trim().toLowerCase());
+ LOG.error("Pattern was: "+ p.pattern());
+
+ throw new IllegalStateException("Missing sponsor link in
resultset, " +
+ "it was returned from qserver but not found by
code.");
}
}
@@ -189,15 +200,14 @@
secondQueryResult = super.execute();
for (SearchResultItem item : secondQueryResult.getResults()) {
- Pattern p = Pattern.compile("^" + originalQuery
- + DOMESTIC_SEARCH+".*|.*;" + originalQuery +
DOMESTIC_SEARCH+".*");
+ Pattern p =
Pattern.compile("(^|;)"+originalQuery+DOMESTIC_SEARCH+"(;|$)");
int i = 0;
boolean found = false;
for(; i < 5 ; i++){
if(item.getField("iypspkeywords"+(i+1))!=null){
Matcher m =
p.matcher(item.getField("iypspkeywords"+(i+1)).trim().toLowerCase());
- found = m.matches();
+ found = m.find();
if(found) break;
}
@@ -236,7 +246,6 @@
@Override
public String getTransformedQuery() {
- originalQuery = super.getTransformedQuery().replaceAll(" ",
"").replace("\"","").toLowerCase();
String query = null;
String completeQuery = null;
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits