Author: ssmalamb
Date: 2007-02-16 10:54:04 +0100 (Fri, 16 Feb 2007)
New Revision: 4449

Modified:
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/VehicleSearchCommand.java
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/BlocketSearchConfiguration.java
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/VehicleSearchConfiguration.java
Log:
Changed from java properties file format to xml for Blocket.se and Bytbil.com

Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
       2007-02-15 20:54:38 UTC (rev 4448)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
       2007-02-16 09:54:04 UTC (rev 4449)
@@ -556,74 +556,36 @@
                 }
 
                 if(sc instanceof PrisjaktSearchConfiguration){
-
-
                 }
 
-//                if(sc instanceof BlocketSearchConfiguration)
-//                {
-//                    final BlocketSearchConfiguration bsc = 
(BlocketSearchConfiguration)sc;
-//                    /**
-//                     * Read blocket.se properties.
-//                     */
-//                    final Map<String,String> blocketmap = new 
HashMap<String,String>();
-//                    Properties props = new Properties();
-//                    PropertiesLoader loader= 
UrlResourceLoader.newPropertiesLoader(cxt, bsc.getBlocketConfigFileName(), 
props);
-//                    loader.abut();
-//
-//                    /**
-//                     * Put properties in a map
-//                     */
-//                    for (Object value : props.values()) {
-//                        final String field[] = ((String)value).split(";");
-//                        if (field.length == 2) {
-//                            blocketmap.put(field[0], field[1]);
-//                        }
-//                     }
-//                     bsc.setBlocketMap(blocketmap);
-//                }
-
-                if(sc instanceof BlocketSearchConfiguration)
-                {
+                if(sc instanceof BlocketSearchConfiguration) {
                     final BlocketSearchConfiguration bsc = 
(BlocketSearchConfiguration)sc;
+
                     /**
-                     * Read blocket.se properties.
+                     * Read blocket.se's around 400 most commonly used search 
phrases excluding vehicle oriented stuff, from blocket_search_words.xml.
                      */
-
-
-//                  configuration files
                     final DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
                     factory.setValidating(false);
                     final DocumentBuilder builder = 
factory.newDocumentBuilder();
                     DocumentLoader loader = 
UrlResourceLoader.newDocumentLoader(cxt, bsc.getBlocketConfigFileName(), 
builder);
+                    loader.abut();
 
                     final Map<String,String> blocketmap = new 
HashMap<String,String>();
-//                    PropertiesLoader loader= 
UrlResourceLoader.newPropertiesLoader(cxt, , props);
-                    loader.abut();
                     final Document doc = loader.getDocument();
                     final Element root = doc.getDocumentElement();
 
-                    // loop through words.
                     final NodeList wordList = 
root.getElementsByTagName("word");
 
+                    // loop through words.
                     for (int i = 0; i < wordList.getLength(); ++i) {
                         final Element wordElement = (Element) wordList.item(i);
-                        final String cid = wordElement.getAttribute("id");
+                        final String cid = 
wordElement.getAttribute("category-id");
                         final String catName = 
wordElement.getAttribute("category");
                         final String word = wordElement.getTextContent();
+                        // Put words into a map
                         blocketmap.put(word, cid+":"+catName);
-                        System.out.println("xml: "+word +" "+cid+":"+catName);
                     }
-                    /**
-                     * Put properties in a map
-                     */
-//                    for (Object value : props.values()) {
-//                        final String field[] = ((String)value).split(";");
-//                        if (field.length == 2) {
-//                            blocketmap.put(field[0], field[1]);
-//                        }
-//                     }
-                     bsc.setBlocketMap(blocketmap);
+                    bsc.setBlocketMap(blocketmap);
                 }
 
                 if(sc instanceof VehicleSearchConfiguration) {
@@ -632,35 +594,50 @@
                     /**
                      * Read vehicle specific properties for bytbil.com and 
blocket.se
                      */
-                    final Set<String> accessoriesSet = new HashSet<String>();
-                    Properties props = new Properties();
-                    PropertiesLoader loader= 
UrlResourceLoader.newPropertiesLoader(cxt, vsc.getAccessoriesFileName(), props);
+                    final DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
+                    factory.setValidating(false);
+                    final DocumentBuilder builder = 
factory.newDocumentBuilder();
+                    DocumentLoader loader = 
UrlResourceLoader.newDocumentLoader(cxt, vsc.getAccessoriesFileName(), builder);
                     loader.abut();
 
-                    final Map<String,String> carMap = new 
HashMap<String,String>();
-                    Properties carProps = new Properties();
-                    PropertiesLoader carLoader= 
UrlResourceLoader.newPropertiesLoader(cxt, vsc.getCarsPropertiesFileName(), 
carProps);
-                    carLoader.abut();
+                    final Set<String> accessoriesSet = new HashSet<String>();
+                    final Document doc = loader.getDocument();
+                    final Element root = doc.getDocumentElement();
 
+                    final NodeList accList = 
root.getElementsByTagName("accessory");
+
                     /**
-                     * Put properties in a set
+                     * Put car accessory search words from xml in a set
                      */
-                    for (Object value : props.values()) {
-                        accessoriesSet.add((String)value);
+                    for (int i = 0; i < accList.getLength(); ++i) {
+                        final Element wordElement = (Element) accList.item(i);
+                        final String acc = wordElement.getTextContent();
+                        accessoriesSet.add(acc);
                     }
                     vsc.setAccessoriesSet(accessoriesSet);
 
+
+                    final Map<String,String> carMap = new 
HashMap<String,String>();
+                    final DocumentBuilder builder2 = 
factory.newDocumentBuilder();
+                    DocumentLoader carLoader = 
UrlResourceLoader.newDocumentLoader(cxt, vsc.getCarsPropertiesFileName(), 
builder2);
+                    carLoader.abut();
+
+                    final Document doc2 = carLoader.getDocument();
+                    final Element root2 = doc2.getDocumentElement();
+
                     /**
-                     * Put properties in a map
+                     * Put car words from xml into a map
                      */
-                    for (Object value : carProps.values()) {
-                        final String field[] = ((String)value).split(":"); // 
Ignore the key, the value is key/value tuple, ugly but it works,
-                        if (field.length == 2) {                           // 
example:  property1963=volvo p 1800:volvo;p 1800
-                            carMap.put(field[0], field[1]);
-                        }
-                     }
-                    vsc.setCarsMap(carMap);
+                    final NodeList carList = root2.getElementsByTagName("car");
 
+                    for (int i = 0; i < carList.getLength(); ++i) {
+                        final Element wordElement = (Element) carList.item(i);
+                        final String brand = wordElement.getAttribute("brand");
+                        final String model = wordElement.getAttribute("model");
+                        final String car = wordElement.getTextContent();
+                        carMap.put(car, brand+";"+model);   // "volvo p 1800" 
, "volvo;p 1800"
+                    }
+                    vsc.setCarsMap(carMap);
                 }
 
                 if(sc instanceof AbstractYahooSearchConfiguration){

Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/VehicleSearchCommand.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/VehicleSearchCommand.java
    2007-02-15 20:54:38 UTC (rev 4448)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/VehicleSearchCommand.java
    2007-02-16 09:54:04 UTC (rev 4449)
@@ -60,7 +60,7 @@
             final SearchPortType port = service.getsearchPort(new 
java.net.URL(service.getsearchPortAddress()));
 
             String query = getTransformedQuery();
-            /* Svars parametrar ifrån blocket */
+            /* Result from bytbil.com and blocket.se */
             LongHolder lholder = new LongHolder();
             StringHolder sholder = new StringHolder();
             Map carsMap = vsc.getCarsMap();
@@ -71,7 +71,7 @@
             String nads = "0";
             if (carsMap.get(query.toLowerCase()) != null) {
                 port.search(query, BLOCKET_CAR_CATEGORY, 
BLOCKET_PRIVATE_ADS_TYPE, lholder, sholder);
-                ((Stub)port).setTimeout(1000);
+                ((Stub) port).setTimeout(1000);
                 nads = Long.toString(lholder.value);
                 if ((nads != null) && (!nads.equals("0"))) {
                     result.addField("searchquery", query);
@@ -81,23 +81,17 @@
             }
             result.addField("numberofads", nads);
 
-            // bytbil
+            // bytbil cars
             String bbCount = "0";
             if (carsMap.get(query.toLowerCase()) != null) {
                 SAXBuilder sb = new SAXBuilder();
                 String[] queryParts = ((String) 
carsMap.get(query.toLowerCase())).split(";");
-                Document doc=null;
-                if (queryParts.length == 2) {
+                Document doc = null;
+                if (queryParts.length == 2 && queryParts[1].length() > 0) {
                     doc = sb.build(String.format(BYTBIL_BASE_URL, 
URLEncoder.encode(queryParts[0], "iso-8859-1"),
                             URLEncoder.encode(queryParts[1], "iso-8859-1")));
                     bbCount = 
doc.getRootElement().getAttribute("count").getValue();
-                } else if ( 
((String)carsMap.get(query.toLowerCase())).equals("bytbil")) {
-                    queryParts  = query.toLowerCase().split(" ");
-                    doc = sb.build(String.format(BYTBIL_BASE_URL, 
URLEncoder.encode(queryParts[0], "iso-8859-1"),
-                            URLEncoder.encode(queryParts[1], "iso-8859-1")));
-                    bbCount = 
doc.getRootElement().getAttribute("count").getValue();
                 }
-                System.out.println("bbCount: " + bbCount);
                 if (!bbCount.equals("0")) {
                     String bbUrl = 
doc.getRootElement().getChildTextTrim("searchquery");
                     result.addField("bytbilbackurl", URLEncoder.encode(bbUrl, 
"iso-8859-1"));
@@ -110,11 +104,12 @@
 
             LOG.debug("Executing car accessories search command with 
searchquery: " + query);
 
+            // Blocket car accessories
             if (blocketContainsAccessories) {
                 LongHolder numberOfAccessories = new LongHolder();
                 StringHolder accUrl = new StringHolder();
                 port.search(query, BLOCKET_CAR_ACCESSORIES_CATEGORY, 
BLOCKET_ALL_ADS_TYPE, numberOfAccessories, accUrl);
-                ((Stub)port).setTimeout(1000);
+                ((Stub) port).setTimeout(1000);
                 accNads = Long.toString(numberOfAccessories.value);
                 if ((accNads != null) && (!accNads.equalsIgnoreCase("0"))) {
                     result.addField("searchquery", query);

Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/BlocketSearchConfiguration.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/BlocketSearchConfiguration.java
       2007-02-15 20:54:38 UTC (rev 4448)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/BlocketSearchConfiguration.java
       2007-02-16 09:54:04 UTC (rev 4449)
@@ -1,42 +1,33 @@
 package no.schibstedsok.searchportal.mode.config;
 
-
 import java.util.Map;
 
-
 /**
  * Configuration for the blocket command.
  */
 public class BlocketSearchConfiguration extends AbstractSearchConfiguration {
 
-       private  Map BLOCKETMAP;
-    private static final String BLOCKET_CONFIGURATION_FILE = 
"blocket.properties";
+    private Map blocketMap;
+
     private static final String BLOCKET_SEARCH_WORDS_FILE = 
"blocket_search_words.xml";
 
-       /**
+    /**
      * Creates a new instance of this search configuration.
      */
     public BlocketSearchConfiguration(final SearchConfiguration sc) {
         super(sc);
-
     }
 
-    public String getBlocketConfigFileName(){
-       return BLOCKET_SEARCH_WORDS_FILE;
+    public String getBlocketConfigFileName() {
+        return BLOCKET_SEARCH_WORDS_FILE;
     }
 
-    public Map getBlocketMap()
-    {
-       return BLOCKETMAP;
+    public Map getBlocketMap() {
+        return blocketMap;
     }
 
-
-    public void setBlocketMap(Map bmap)
-    {
-
-       BLOCKETMAP=bmap;
-
+    public void setBlocketMap(Map bmap) {
+        blocketMap = bmap;
     }
 
 }
-

Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/VehicleSearchConfiguration.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/VehicleSearchConfiguration.java
       2007-02-15 20:54:38 UTC (rev 4448)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/VehicleSearchConfiguration.java
       2007-02-16 09:54:04 UTC (rev 4449)
@@ -12,9 +12,8 @@
 
     private Set accessoriesSet;
 
-//    private static final String VEHICLE_CONFIGURATION_FILE = 
"blocket.properties";
-    private static final String VEHICLE_ACCESSORIES_PROPERTIES = 
"vehicle_accessories.properties";
-    private static final String VEHICLE_CARS_PROPERTIES = 
"vehicle_cars.properties";
+    private static final String VEHICLE_ACCESSORIES_PROPERTIES = 
"vehicle_accessories.xml";
+    private static final String VEHICLE_CARS_PROPERTIES = "vehicle_cars.xml";
 
     /**
      * Creates a new instance of this search configuration.

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to