Author: ssanbern
Date: 2007-01-04 10:52:20 +0100 (Thu, 04 Jan 2007)
New Revision: 4258
Added:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/BlocketSearchCommand.java
Log:
New blocket search command
Added:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/BlocketSearchCommand.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/BlocketSearchCommand.java
(rev 0)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/BlocketSearchCommand.java
2007-01-04 09:52:20 UTC (rev 4258)
@@ -0,0 +1,94 @@
+package no.schibstedsok.searchportal.mode.command;
+
+import java.net.MalformedURLException;
+import java.rmi.RemoteException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.xml.rpc.ServiceException;
+import javax.xml.rpc.holders.LongHolder;
+import javax.xml.rpc.holders.StringHolder;
+import se.blocket.www2.search.SearchLocator;
+import se.blocket.www2.search.SearchPortType;
+import no.schibstedsok.searchportal.InfrastructureException;
+import no.schibstedsok.searchportal.mode.config.BlocketSearchConfiguration;
+import no.schibstedsok.searchportal.query.token.TokenEvaluationEngine;
+import no.schibstedsok.searchportal.query.token.TokenPredicate;
+import no.schibstedsok.searchportal.result.BasicSearchResult;
+import no.schibstedsok.searchportal.result.SearchResult;
+import no.schibstedsok.searchportal.site.config.PropertiesLoader;
+import no.schibstedsok.searchportal.site.config.UrlResourceLoader;
+
+
+public class BlocketSearchCommand extends AbstractWebServiceSearchCommand {
+
+
+ public BlocketSearchCommand(final Context cxt,
+ final Map<String, Object> parameters) {
+ super(cxt, parameters);}
+
+ @Override
+ public SearchResult execute()
+ {
+
+ final TokenEvaluationEngine engine =
context.getTokenEvaluationEngine();
+
+ final boolean isElectronic =
engine.evaluateQuery(TokenPredicate.PRODUCT_ELECTRONIC,context.getQuery());
+ final boolean isHobby =
engine.evaluateQuery(TokenPredicate.PRODUCT_HOBBY,context.getQuery());
+
+
+
+
+ BlocketSearchConfiguration bsc = (BlocketSearchConfiguration)
context.getSearchConfiguration();
+
+ Map m = bsc.getBlocketMap();
+
+ final SearchLocator service = new SearchLocator();
+
+ final SearchResult result = new BasicSearchResult(this);
+
+ try
+ {
+ final SearchPortType port = service.getsearchPort(new
java.net.URL(service.getsearchPortAddress()));
+ String query = getTransformedQuery();
+
+ LongHolder lholder = new LongHolder();
+ StringHolder sholder = new StringHolder();
+
+ String categoryIndex =(String) m.get(query);
+ if(categoryIndex!=null)
+ {
+ port.search(query,
Integer.parseInt(categoryIndex), lholder, sholder);
+ }
+
+ String nads = Long.toString(lholder.value);
+ result.addField("searchquery", query);
+ result.addField("numberofads", nads);
+ result.addField("blocketbackurl", sholder.value);
+
+ result.setHitCount(1);
+
+
+
+ }
+ catch (ServiceException se)
+ {
+ throw new InfrastructureException(se);
+ }
+ catch (MalformedURLException murle)
+ {
+ throw new InfrastructureException(murle);
+ }
+ catch (RemoteException re)
+ {
+ throw new InfrastructureException(re);
+ }
+
+ //return null;
+ return result;
+
+ }
+
+}
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits