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