Author: gttersen
Date: 2007-04-24 21:59:16 +0200 (Tue, 24 Apr 2007)
New Revision: 4862
Added:
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMediumQueryTransformerConfig.java
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMediumQueryTransformer.java
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/ClusteringESPFastCommand.java
trunk/core-api/src/main/java/no/schibstedsok/searchportal/result/handler/AgeCalculatorResultHandler.java
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformerConfig.java
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformer.java
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsClusterQueryTransformer.java
trunk/result-handler-config-spi/src/main/java/no/schibstedsok/searchportal/result/handler/AgeCalculatorResultHandlerConfig.java
trunk/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/ClusteringESPFastConfiguration.java
Log:
Fixes for newsAggregator
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-04-24 19:12:51 UTC (rev 4861)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
2007-04-24 19:59:16 UTC (rev 4862)
@@ -47,11 +47,9 @@
import no.schibstedsok.searchportal.mode.config.YahooMediaSearchConfiguration;
import no.schibstedsok.searchportal.mode.config.YellowGeoSearchConfiguration;
import no.schibstedsok.searchportal.mode.config.YellowSearchConfiguration;
-import
no.schibstedsok.searchportal.mode.executor.ParallelSearchCommandExecutor;
-import no.schibstedsok.searchportal.mode.executor.SearchCommandExecutor;
-import
no.schibstedsok.searchportal.mode.executor.SequentialSearchCommandExecutor;
import no.schibstedsok.searchportal.query.transform.QueryTransformerConfig;
import no.schibstedsok.searchportal.result.Navigator;
+import no.schibstedsok.searchportal.result.handler.ResultHandlerConfig;
import no.schibstedsok.searchportal.site.Site;
import no.schibstedsok.searchportal.site.SiteContext;
import no.schibstedsok.searchportal.site.SiteKeyedFactory;
@@ -79,7 +77,6 @@
import java.util.Map;
import java.util.Set;
import java.util.concurrent.locks.ReentrantReadWriteLock;
-import no.schibstedsok.searchportal.result.handler.ResultHandlerConfig;
/**
* @author <a href="mailto:[EMAIL PROTECTED]>mick</a>
@@ -131,7 +128,7 @@
private final DocumentLoader loader;
private final Context context;
-
+
private String templatePrefix;
// Static --------------------------------------------------------
@@ -269,7 +266,7 @@
mode.setId(id);
mode.setExecutor(parseExecutor(modeE.getAttribute("executor"),
inherit != null ? inherit.getExecutor() :
SearchMode.SearchCommandExecutorConfig.SEQUENTIAL));
-
+
fillBeanProperty(mode, inherit, "analysis", ParseType.Boolean,
modeE, "false");
// setup new commands list for this mode
@@ -310,13 +307,13 @@
}
private static SearchMode.SearchCommandExecutorConfig parseExecutor(
- final String name,
+ final String name,
final SearchMode.SearchCommandExecutorConfig def) {
- try{
+ try {
return
SearchMode.SearchCommandExecutorConfig.valueOf(name.toUpperCase());
-
- }catch(IllegalArgumentException iae){
+
+ } catch (IllegalArgumentException iae) {
LOG.error("Unparsable executor " + name, iae);
}
return def;
@@ -775,7 +772,8 @@
fillBeanProperty(cefc, inherit, "clusterField",
ParseType.String, commandE, "cluster");
fillBeanProperty(cefc, inherit, "clusterMaxFetch",
ParseType.Int, commandE, "10");
fillBeanProperty(cefc, inherit, "nestedResultsField",
ParseType.String, commandE, "entries");
- fillBeanProperty(cefc, inherit, "userSortField",
ParseType.String, commandE, "publishedtime");
+ fillBeanProperty(cefc, inherit, "sortField",
ParseType.String, commandE, "publishedtime");
+ fillBeanProperty(cefc, inherit, "defaultSort",
ParseType.String, commandE, "descending");
fillBeanProperty(cefc, inherit, "userSortParameter",
ParseType.String, commandE, "sort");
}
@@ -910,14 +908,14 @@
}
- private static final class QueryTransformerFactory extends AbstractFactory{
+ private static final class QueryTransformerFactory extends AbstractFactory
{
QueryTransformerFactory() {
}
QueryTransformerConfig parseQueryTransformer(final Element qt) {
- return
((QueryTransformerConfig)construct(qt)).readQueryTransformer(qt);
+ return ((QueryTransformerConfig)
construct(qt)).readQueryTransformer(qt);
}
protected Class<? extends QueryTransformerConfig> findClass(final
String xmlName) {
@@ -925,9 +923,9 @@
Class clazz = null;
final String bName = xmlToBeanName(xmlName);
final String className = Character.toUpperCase(bName.charAt(0)) +
bName.substring(1, bName.length());
-
+
LOG.info("findClass " + className);
-
+
try {
clazz = (Class<? extends QueryTransformerConfig>)
Class.forName(
"no.schibstedsok.searchportal.query.transform."
@@ -942,14 +940,14 @@
}
- private static final class ResultHandlerFactory extends AbstractFactory{
+ private static final class ResultHandlerFactory extends AbstractFactory {
ResultHandlerFactory() {
}
ResultHandlerConfig parseResultHandler(final Element rh) {
- return ((ResultHandlerConfig)construct(rh)).readResultHandler(rh);
+ return ((ResultHandlerConfig) construct(rh)).readResultHandler(rh);
}
protected Class<? extends ResultHandlerConfig> findClass(final String
xmlName) {
@@ -957,9 +955,9 @@
Class clazz = null;
final String bName = xmlToBeanName(xmlName);
final String className = Character.toUpperCase(bName.charAt(0)) +
bName.substring(1, bName.length());
-
+
LOG.info("findClass " + className);
-
+
try {
clazz = (Class<? extends ResultHandlerConfig>) Class.forName(
"no.schibstedsok.searchportal.result.handler."
@@ -973,10 +971,11 @@
}
}
-
- private static abstract class AbstractFactory{
- AbstractFactory(){}
-
+
+ private static abstract class AbstractFactory {
+ AbstractFactory() {
+ }
+
boolean supported(final String xmlName) {
return null != findClass(xmlName);
@@ -997,6 +996,6 @@
}
}
- protected abstract Class<? extends Object> findClass(final String
xmlName);
+ protected abstract Class<? extends Object> findClass(final String
xmlName);
}
}
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/ClusteringESPFastCommand.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/ClusteringESPFastCommand.java
2007-04-24 19:12:51 UTC (rev 4861)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/ClusteringESPFastCommand.java
2007-04-24 19:59:16 UTC (rev 4862)
@@ -38,12 +38,19 @@
protected void modifyQuery(IQuery query) {
final ClusteringESPFastConfiguration config = getSearchConfiguration();
- // Can not use the default sort functionality since it hardcodes field
name
+ // Because of a bug in FAST ESP5 related to collapsing and sorting, we
must use sort direcetion,
+ // and not the +fieldname syntax
final StringDataObject sort =
datamodel.getParameters().getValue(config.getUserSortParameter());
+ String sortType;
if (sort != null) {
- query.setParameter(BaseParameter.SORT_BY,
config.getUserSortField());
- query.setParameter(BaseParameter.SORT_DIRECTION, sort.getString());
+ sortType = sort.getString();
+ } else {
+ sortType = config.getDefaultSort();
}
+ if (!sortType.equals("relevance")) {
+ query.setParameter(BaseParameter.SORT_BY, config.getSortField());
+ query.setParameter(BaseParameter.SORT_DIRECTION, sortType);
+ }
final StringDataObject clusterId =
datamodel.getParameters().getValue(config.getClusterIdParameter());
if (clusterId == null) {
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/result/handler/AgeCalculatorResultHandler.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/result/handler/AgeCalculatorResultHandler.java
2007-04-24 19:12:51 UTC (rev 4861)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/result/handler/AgeCalculatorResultHandler.java
2007-04-24 19:59:16 UTC (rev 4862)
@@ -18,7 +18,9 @@
import java.util.TimeZone;
-/** Calculate Age.
+/**
+ * Calculate Age.
+ *
* @author <a href="mailto:[EMAIL PROTECTED]">Magnus Eklund</a>
* @version <tt>$Id$</tt>
*/
@@ -28,20 +30,21 @@
private static final String FAST_DATE_FMT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
private final AgeCalculatorResultHandlerConfig config;
-
+
/**
- *
- * @param config
+ * @param config
*/
- public AgeCalculatorResultHandler(final ResultHandlerConfig config){
- this.config = (AgeCalculatorResultHandlerConfig)config;
+ public AgeCalculatorResultHandler(final ResultHandlerConfig config) {
+ this.config = (AgeCalculatorResultHandlerConfig) config;
}
- /** @inherit **/
+ /**
+ * @inherit *
+ */
public void handleResult(final Context cxt, final DataModel datamodel) {
final String fmt = /*dateFormat != null ? dateFormat :*/ FAST_DATE_FMT;
- final String ageFormatKey = /*ageMessageFormat != null ?
ageMessageFormat :*/ "age";
+ final String ageFormatKey = config.getAgeFormatKey();
final DateFormat df = new SimpleDateFormat(fmt);
// Zulu time is UTC. But java doesn't know that.
@@ -52,12 +55,12 @@
}
private void setAgeForAll(
- final SearchResult searchResult,
- final DateFormat df,
- final DataModel datamodel,
- final Context cxt,
+ final SearchResult searchResult,
+ final DateFormat df,
+ final DataModel datamodel,
+ final Context cxt,
final String ageFormatKey) {
-
+
for (final SearchResultItem item : searchResult.getResults()) {
if (config.getRecursiveField() != null) {
SearchResult subResult =
item.getNestedSearchResult(config.getRecursiveField());
@@ -70,12 +73,12 @@
}
private void setAge(
- final SearchResultItem item,
- final DateFormat df,
- final DataModel datamodel,
- final Context cxt,
+ final SearchResultItem item,
+ final DateFormat df,
+ final DataModel datamodel,
+ final Context cxt,
final String ageFormatKey) {
-
+
final String docTime = item.getField(config.getSourceField());
if (docTime != null) {
@@ -95,45 +98,45 @@
dateParts[1] = Long.valueOf(age / (60 * 60 * 1000) % 24);
dateParts[2] = Long.valueOf(age / (60 * 1000) % 60);
- final Map<String,Object> parameters =
datamodel.getJunkYard().getValues();
+ final Map<String, Object> parameters =
datamodel.getJunkYard().getValues();
String ageString = "";
// = TextMessages.getMessages().getMessage(currentLocale,
ageFormatKey, dateParts);
- final String s = parameters.get("contentsource") instanceof
String[]
- ? ((String[])parameters.get("contentsource"))[0]
- : (String)parameters.get("contentsource");
+ final String s = parameters.get("contentsource") instanceof
String[]
+ ? ((String[]) parameters.get("contentsource"))[0]
+ : (String) parameters.get("contentsource");
final TextMessages txtMsgs =
TextMessages.valueOf(ContextWrapper.wrap(
TextMessages.Context.class,
cxt,
- new SiteContext(){
+ new SiteContext() {
public Site getSite() {
return datamodel.getSite().getSite();
}
}));
//older than 3 days or source is Mediearkivet, show short date
format.
- if (dateParts[0].longValue() > 3 || s != null &&
s.equals("Mediearkivet") || config.getAsDate()){
-
+ if (dateParts[0].longValue() > 3 || s != null &&
s.equals("Mediearkivet") || config.getAsDate()) {
+
final DateFormat shortFmt = DateFormat.getDateInstance(
DateFormat.SHORT,
datamodel.getSite().getSite().getLocale());
ageString = shortFmt.format(new Date(stamp));
- //more than 1 day, show days
- }else if (dateParts[0].longValue() > 0) {
+ //more than 1 day, show days
+ } else if (dateParts[0].longValue() > 0) {
dateParts[1] = Long.valueOf(0);
dateParts[2] = Long.valueOf(0);
- ageString = txtMsgs.getMessage(ageFormatKey, (Object[])
dateParts);
- //more than 1 hour, show hours
+ ageString = txtMsgs.getMessage(ageFormatKey, (Object[])
dateParts);
+ //more than 1 hour, show hours
} else if (dateParts[1].longValue() > 0) {
dateParts[2] = Long.valueOf(0);
ageString = txtMsgs.getMessage(ageFormatKey, (Object[])
dateParts);
- //if less than 1 hour, show minutes
+ //if less than 1 hour, show minutes
} else if (dateParts[2].longValue() > 0) {
dateParts[0] = Long.valueOf(0);
dateParts[1] = Long.valueOf(0);
ageString = txtMsgs.getMessage(ageFormatKey, (Object[])
dateParts);
- } else{
+ } else {
ageString = docTime.substring(8, 10) + "."
+ docTime.substring(5, 7) + "." +
docTime.substring(0, 4);
}
Modified:
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformerConfig.java
===================================================================
---
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformerConfig.java
2007-04-24 19:12:51 UTC (rev 4861)
+++
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformerConfig.java
2007-04-24 19:59:16 UTC (rev 4862)
@@ -28,12 +28,16 @@
private static final String POSTFIX = "postfix";
private static final String TYPE_NAME = "name";
private static final String DEFAULT_TYPE = "default-type";
+ private static final String UNCLUSTERED_DELAY = "unclustered-delay";
+ private static final String UNCLUSTERED_DELAY_IN_MINUTES =
"unclustered-delay-in-minutes";
private static final String DEFAULT_CONVERT_ELEMENT = "default-convert";
private String queryType;
private String queryParameter;
private String typeParameter;
private String defaultType;
+ private boolean unclusteredDelayFilter = false;
+ private int unclusteredDelayInMinutes = 10;
private Map<String, String[]> typeConversions;
@@ -60,6 +64,15 @@
return defaultType;
}
+
+ public boolean isUnclusteredDelayFilter() {
+ return unclusteredDelayFilter;
+ }
+
+ public int getUnclusteredDelayInMinutes() {
+ return unclusteredDelayInMinutes;
+ }
+
@Override
public NewsCaseQueryTransformerConfig readQueryTransformer(final Element
element) {
Logger log = Logger.getLogger(NewsCaseQueryTransformerConfig.class);
@@ -68,10 +81,18 @@
queryParameter = element.getAttribute(QUERY_PARAMETER);
}
typeParameter = element.getAttribute(TYPE_PARAMETER);
- final String optionalParameter = element.getAttribute(DEFAULT_TYPE);
+ String optionalParameter = element.getAttribute(DEFAULT_TYPE);
if (optionalParameter != null && optionalParameter.length() > 0) {
defaultType = optionalParameter;
}
+ optionalParameter = element.getAttribute(UNCLUSTERED_DELAY);
+ if (optionalParameter != null &&
optionalParameter.equalsIgnoreCase("true")) {
+ unclusteredDelayFilter = true;
+ }
+ optionalParameter = element.getAttribute(UNCLUSTERED_DELAY_IN_MINUTES);
+ if (optionalParameter != null && optionalParameter.length() > 0) {
+ unclusteredDelayInMinutes = Integer.parseInt(optionalParameter);
+ }
NodeList convertNodeList =
element.getElementsByTagName(DEFAULT_CONVERT_ELEMENT);
if (convertNodeList.getLength() > 0) {
typeConversions = new HashMap<String, String[]>();
Added:
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMediumQueryTransformerConfig.java
===================================================================
---
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMediumQueryTransformerConfig.java
(rev 0)
+++
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMediumQueryTransformerConfig.java
2007-04-24 19:59:16 UTC (rev 4862)
@@ -0,0 +1,42 @@
+package no.schibstedsok.searchportal.query.transform;
+
+import
no.schibstedsok.searchportal.query.transform.AbstractQueryTransformerConfig.Controller;
+import org.w3c.dom.Element;
+
[EMAIL PROTECTED]("NewsMediumQueryTransformer")
+public class NewsMediumQueryTransformerConfig extends
AbstractQueryTransformerConfig {
+ public static final String ALL_MEDIUMS = "all";
+ private String mediumPrefix = "medium";
+ private String defaultMedium = "webnewsarticle";
+ private String mediumParameter = "medium";
+
+
+ public String getMediumPrefix() {
+ return mediumPrefix;
+ }
+
+ public String getDefaultMedium() {
+ return defaultMedium;
+ }
+
+ public String getMediumParameter() {
+ return mediumParameter;
+ }
+
+ @Override
+ public AbstractQueryTransformerConfig readQueryTransformer(final Element
element) {
+ String s = element.getAttribute("medium-prefix");
+ if (s != null && s.length() > 0) {
+ mediumPrefix = s;
+ }
+ s = element.getAttribute("default-medium");
+ if (s != null && s.length() > 0) {
+ defaultMedium = s;
+ }
+ s = element.getAttribute("medium-parameter");
+ if (s != null && s.length() > 0) {
+ mediumParameter = s;
+ }
+ return this;
+ }
+}
Modified:
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformer.java
===================================================================
---
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformer.java
2007-04-24 19:12:51 UTC (rev 4861)
+++
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformer.java
2007-04-24 19:59:16 UTC (rev 4862)
@@ -7,7 +7,10 @@
import javax.naming.InitialContext;
import javax.naming.NamingException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
import java.util.Properties;
+import java.util.TimeZone;
/**
* Checks if the query should be transformed from a ejb lookup on the
queryParameter. Transformation will replace
@@ -17,6 +20,7 @@
* query should be done after this.
*/
public final class NewsCaseQueryTransformer extends AbstractQueryTransformer {
+ private final SimpleDateFormat sdf = new
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
private final static Logger LOG =
Logger.getLogger(NewsCaseQueryTransformer.class);
private NewsQueryTransformerDataAccess dataAccess = new
NewsQueryTransformerDataAccess();
@@ -51,6 +55,9 @@
for (Clause keyClause :
getContext().getTransformedTerms().keySet()) {
getContext().getTransformedTerms().put(keyClause, "");
}
+ if (config.isUnclusteredDelayFilter()) {
+ transformedQuery = addUnclusteredDelayFilter(transformedQuery);
+ }
LOG.debug("New query is: '" + transformedQuery + "'");
if (transformedQuery.length() > 0) {
getContext().getDataModel().getJunkYard().setValue(config.getQueryType(),
transformedQuery);
@@ -59,6 +66,17 @@
}
}
+ private String addUnclusteredDelayFilter(String transformedQuery) {
+ Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
+ cal.add(Calendar.MINUTE, -config.getUnclusteredDelayInMinutes());
+ StringBuilder sb = new StringBuilder(transformedQuery);
+ sb.insert(0, "and(");
+ sb.append(",cluster:range(1,max) or processingtime:range(min,");
+ sb.append(sdf.format(cal.getTime()));
+ sb.append("))");
+ return sb.toString();
+ }
+
private String getTransformedTermsQuery() {
StringBuilder query = new StringBuilder();
for (Clause keyClause : getContext().getTransformedTerms().keySet()) {
Modified:
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsClusterQueryTransformer.java
===================================================================
---
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsClusterQueryTransformer.java
2007-04-24 19:12:51 UTC (rev 4861)
+++
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsClusterQueryTransformer.java
2007-04-24 19:59:16 UTC (rev 4862)
@@ -74,7 +74,8 @@
LOG.debug("Adding param from datamodel: " + paramField + "=" +
paramValue);
if (paramValue != null) {
filter.append(paramField).append(':');
- filter.append('\"').append(paramValue).append('\"');
+ filter.append("equals(");
+ filter.append('\"').append(paramValue).append("\")");
filter.append(" and ");
}
}
Added:
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMediumQueryTransformer.java
===================================================================
---
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMediumQueryTransformer.java
(rev 0)
+++
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMediumQueryTransformer.java
2007-04-24 19:59:16 UTC (rev 4862)
@@ -0,0 +1,39 @@
+package no.schibstedsok.searchportal.query.transform;
+
+import no.schibstedsok.searchportal.query.Clause;
+import org.apache.log4j.Logger;
+
+public class NewsMediumQueryTransformer extends AbstractQueryTransformer {
+ private static final Logger LOG =
Logger.getLogger(NewsMediumQueryTransformer.class);
+ private NewsMediumQueryTransformerConfig config;
+
+ public NewsMediumQueryTransformer(final QueryTransformerConfig config) {
+ this.config = (NewsMediumQueryTransformerConfig) config;
+ }
+
+ public void visitImpl(final Clause clause) {
+ String medium = (String)
getContext().getDataModel().getJunkYard().getValue(config.getMediumParameter());
+ if (!NewsMediumQueryTransformerConfig.ALL_MEDIUMS.equals(medium)) {
+ if (medium == null || medium.length() == 0) {
+ medium = config.getDefaultMedium();
+ }
+ StringBuilder query = new
StringBuilder(getTransformedTermsQuery());
+ query.insert(0, "and(");
+ query.append(",
").append(config.getMediumPrefix()).append(':').append(medium).append(')');
+ for (Clause keyClause :
getContext().getTransformedTerms().keySet()) {
+ getContext().getTransformedTerms().put(keyClause, "");
+ }
+ LOG.debug("Transformed query is: '" + query.toString() + "'");
+
getContext().getTransformedTerms().put(getContext().getQuery().getFirstLeafClause(),
query.toString());
+ }
+ }
+
+ private String getTransformedTermsQuery() {
+ StringBuilder query = new StringBuilder();
+ for (Clause keyClause : getContext().getTransformedTerms().keySet()) {
+ query.append(getContext().getTransformedTerms().get(keyClause));
+ }
+ return query.toString();
+ }
+
+}
Modified:
trunk/result-handler-config-spi/src/main/java/no/schibstedsok/searchportal/result/handler/AgeCalculatorResultHandlerConfig.java
===================================================================
---
trunk/result-handler-config-spi/src/main/java/no/schibstedsok/searchportal/result/handler/AgeCalculatorResultHandlerConfig.java
2007-04-24 19:12:51 UTC (rev 4861)
+++
trunk/result-handler-config-spi/src/main/java/no/schibstedsok/searchportal/result/handler/AgeCalculatorResultHandlerConfig.java
2007-04-24 19:59:16 UTC (rev 4862)
@@ -9,7 +9,9 @@
import org.w3c.dom.Element;
-/** Calculate Age.
+/**
+ * Calculate Age.
+ *
* @author <a href="mailto:[EMAIL PROTECTED]">Magnus Eklund</a>
* @version <tt>$Id$</tt>
*/
@@ -19,22 +21,21 @@
private String targetField;
private String sourceField;
private String recursiveField;
+ private String ageFormatKey = "age";
private Boolean asDate = Boolean.FALSE;
private static final Logger LOG =
Logger.getLogger(AgeCalculatorResultHandlerConfig.class);
/**
- *
- * @return
+ * @return
*/
public String getRecursiveField() {
return recursiveField;
}
/**
- *
- * @param recursiveField
+ * @param recursiveField
*/
public void setRecursiveField(String recursiveField) {
this.recursiveField = recursiveField;
@@ -42,8 +43,7 @@
/**
- *
- * @return
+ * @return
*/
public String getTargetField() {
return targetField;
@@ -51,8 +51,7 @@
/**
- *
- * @param targetField
+ * @param targetField
*/
public void setTargetField(final String targetField) {
this.targetField = targetField;
@@ -60,49 +59,53 @@
/**
- *
- * @param string
+ * @param string
*/
public void setSourceField(final String string) {
sourceField = string;
}
/**
- *
- * @return
+ * @return
*/
- public String getSourceField(){
+ public String getSourceField() {
return sourceField;
}
/**
- *
- * @param asDate
+ * @param asDate
*/
public void setAsDate(final Boolean asDate) {
this.asDate = asDate;
}
-
+
/**
- *
- * @return
+ * @return
*/
- public Boolean getAsDate(){
+ public Boolean getAsDate() {
return asDate;
}
+ public String getAgeFormatKey() {
+ return ageFormatKey;
+ }
+
+ public void setAgeFormatKey(String ageFormatKey) {
+ this.ageFormatKey = ageFormatKey;
+ }
+
@Override
public AbstractResultHandlerConfig readResultHandler(final Element
element) {
-
- super.readResultHandler(element);
+ super.readResultHandler(element);
+
setTargetField(element.getAttribute("target"));
setSourceField(element.getAttribute("source"));
AbstractDocumentFactory.fillBeanProperty(this, null, "asDate",
ParseType.Boolean, element, "false");
- AbstractDocumentFactory.fillBeanProperty(this, null, "recursiveField",
ParseType.String, element, null);
-
+ AbstractDocumentFactory.fillBeanProperty(this, null, "recursiveField",
ParseType.String, element, null);
+ AbstractDocumentFactory.fillBeanProperty(this, null, "ageFormatKey",
ParseType.String, element, "age");
return this;
}
-
-
+
+
}
Modified:
trunk/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/ClusteringESPFastConfiguration.java
===================================================================
---
trunk/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/ClusteringESPFastConfiguration.java
2007-04-24 19:12:51 UTC (rev 4861)
+++
trunk/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/ClusteringESPFastConfiguration.java
2007-04-24 19:59:16 UTC (rev 4862)
@@ -4,24 +4,23 @@
import
no.schibstedsok.searchportal.mode.config.AbstractSearchConfiguration.Controller;
/**
- *
* @author mick
* @version $Id$
*/
@Controller("ClusteringESPFastCommand")
public class ClusteringESPFastConfiguration extends
NavigatableESPFastConfiguration {
-
+
private String clusterIdParameter = "clusterId";
private int resultsPerCluster;
private String clusterField;
private String clusterMaxFetch;
private String nestedResultsField;
private String userSortParameter;
- private String userSortField;
+ private String sortField;
+ private String defaultSort;
/**
- *
- * @param asc
+ * @param asc
*/
public ClusteringESPFastConfiguration(SearchConfiguration asc) {
super(asc);
@@ -33,111 +32,114 @@
clusterMaxFetch = cefcc.getClusterMaxFetch();
nestedResultsField = cefcc.getNestedResultsField();
userSortParameter = cefcc.getUserSortParameter();
- userSortField = cefcc.getUserSortField();
+ sortField = cefcc.getSortField();
}
}
/**
- *
- * @return
+ * @return
*/
public String getUserSortParameter() {
return userSortParameter;
}
/**
- *
- * @param userSortParameter
+ * @param userSortParameter
*/
public void setUserSortParameter(String userSortParameter) {
this.userSortParameter = userSortParameter;
}
/**
- *
- * @return
+ * @return
*/
public String getNestedResultsField() {
return nestedResultsField;
}
/**
- *
- * @param nestedResultsField
+ * @param nestedResultsField
*/
public void setNestedResultsField(String nestedResultsField) {
this.nestedResultsField = nestedResultsField;
}
/**
- *
- * @return
+ * @return
*/
public String getClusterIdParameter() {
return clusterIdParameter;
}
/**
- *
- * @param clusterIdParameter
+ * @param clusterIdParameter
*/
public void setClusterIdParameter(String clusterIdParameter) {
this.clusterIdParameter = clusterIdParameter;
}
/**
- *
- * @param resultsPerCluster
+ * @param resultsPerCluster
*/
public void setResultsPerCluster(int resultsPerCluster) {
this.resultsPerCluster = resultsPerCluster;
}
/**
- *
- * @return
+ * @return
*/
public int getResultsPerCluster() {
return resultsPerCluster;
}
/**
- *
- * @return
+ * @return
*/
public String getClusterField() {
return clusterField;
}
/**
- *
- * @param clusterField
+ * @param clusterField
*/
public void setClusterField(String clusterField) {
this.clusterField = clusterField;
}
/**
- *
- * @return
+ * @return
*/
public String getClusterMaxFetch() {
return clusterMaxFetch;
}
/**
- *
- * @param clusterMaxFetch
+ * @param clusterMaxFetch
*/
public void setClusterMaxFetch(String clusterMaxFetch) {
this.clusterMaxFetch = clusterMaxFetch;
}
/**
- *
- * @return
+ * @return
*/
- public String getUserSortField() {
- return userSortField;
+ public String getSortField() {
+ return sortField;
}
+
+ /**
+ * @param sortField
+ */
+ public void setSortField(String sortField) {
+ this.sortField = sortField;
+ }
+
+
+ public String getDefaultSort() {
+ return defaultSort;
+ }
+
+ public void setDefaultSort(String defaultSort) {
+ this.defaultSort = defaultSort;
+ }
}
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits