Author: gttersen
Date: 2007-05-04 18:10:18 +0200 (Fri, 04 May 2007)
New Revision: 4995
Modified:
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/ClusteringESPFastCommand.java
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NavigatableESPFastCommand.java
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsEspSearchCommand.java
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/util/ModifierDateComparator.java
branches/2.12/result-spi/src/main/java/no/schibstedsok/searchportal/result/Navigator.java
branches/2.12/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/ClusteringEspFastCommandConfig.java
branches/2.12/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/NewsEspCommandConfig.java
Log:
newsAggregator fixes
Modified:
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/ClusteringESPFastCommand.java
===================================================================
---
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/ClusteringESPFastCommand.java
2007-05-04 06:07:14 UTC (rev 4994)
+++
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/ClusteringESPFastCommand.java
2007-05-04 16:10:18 UTC (rev 4995)
@@ -35,20 +35,6 @@
super.modifyQuery(query);
final ClusteringEspFastCommandConfig config = getSearchConfiguration();
- // 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) {
- 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) {
LOG.debug("--- Modifying query. ---");
Modified:
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NavigatableESPFastCommand.java
===================================================================
---
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NavigatableESPFastCommand.java
2007-05-04 06:07:14 UTC (rev 4994)
+++
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NavigatableESPFastCommand.java
2007-05-04 16:10:18 UTC (rev 4995)
@@ -299,6 +299,9 @@
case MONTH_YEAR:
Collections.sort(searchResult.getModifiers(navigatorKey),
ModifierDateComparator.MONTH_YEAR);
break;
+ case YEAR_MONTH:
+
Collections.sort(searchResult.getModifiers(navigatorKey),
ModifierDateComparator.YEAR_MONTH);
+ break;
case NONE:
// Use the soting the index returns
break;
Modified:
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsEspSearchCommand.java
===================================================================
---
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsEspSearchCommand.java
2007-05-04 06:07:14 UTC (rev 4994)
+++
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsEspSearchCommand.java
2007-05-04 16:10:18 UTC (rev 4995)
@@ -8,6 +8,7 @@
import com.fastsearch.esp.search.result.IDocumentSummaryField;
import com.fastsearch.esp.search.result.IQueryResult;
import com.fastsearch.esp.search.result.IllegalType;
+import no.schibstedsok.searchportal.datamodel.generic.StringDataObject;
import no.schibstedsok.searchportal.mode.config.NewsEspCommandConfig;
import no.schibstedsok.searchportal.query.AndClause;
import no.schibstedsok.searchportal.query.AndNotClause;
@@ -44,6 +45,24 @@
protected void modifyQuery(IQuery query) {
super.modifyQuery(query);
final NewsEspCommandConfig config = getSearchConfiguration();
+
+ // 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) {
+ sortType = sort.getString();
+ } else {
+ sortType = config.getDefaultSort();
+ }
+ if (sortType.equals("relevance")) {
+ query.setParameter(BaseParameter.SORT_BY,
config.getRelevanceSortField());
+ query.setParameter(BaseParameter.SORT_DIRECTION, "descending");
+ } else {
+ query.setParameter(BaseParameter.SORT_BY, config.getSortField());
+ query.setParameter(BaseParameter.SORT_DIRECTION, sortType);
+ }
+
query.setParameter(BaseParameter.HITS,
Math.max(config.getCollapsingMaxFetch(), config.getResultsToReturn()));
if (config.isIgnoreOffset()) {
query.setParameter(new SearchParameter(BaseParameter.OFFSET, 0));
Modified:
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/util/ModifierDateComparator.java
===================================================================
---
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/util/ModifierDateComparator.java
2007-05-04 06:07:14 UTC (rev 4994)
+++
branches/2.12/core-api/src/main/java/no/schibstedsok/searchportal/util/ModifierDateComparator.java
2007-05-04 16:10:18 UTC (rev 4995)
@@ -1,32 +1,31 @@
// Copyright (2007) Schibsted Søk AS
package no.schibstedsok.searchportal.util;
+import
no.schibstedsok.searchportal.mode.command.AbstractSimpleFastSearchCommand;
import no.schibstedsok.searchportal.result.Modifier;
-import
no.schibstedsok.searchportal.mode.command.AbstractSimpleFastSearchCommand;
+import org.apache.log4j.Logger;
+import java.text.DateFormat;
+import java.text.MessageFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.Comparator;
import java.util.Date;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.text.ParseException;
-import java.text.MessageFormat;
-import org.apache.log4j.Logger;
-
/**
* Enum for various reverse date comparators of navigator modifiers.
- *
*/
public enum ModifierDateComparator implements Comparator<Modifier> {
- YEAR("y",SortOrder.DESCENDING),
+ YEAR("y", SortOrder.DESCENDING),
MONTH_YEAR("M-y", SortOrder.ASCENDING),
DAY_MONTH_YEAR("d-M-y", SortOrder.ASCENDING),
- DAY_MONTH_YEAR_DESCENDING("d-M-y", SortOrder.DESCENDING);
+ DAY_MONTH_YEAR_DESCENDING("d-M-y", SortOrder.DESCENDING),
+ YEAR_MONTH("y-M", SortOrder.DESCENDING);
private static final Logger LOG =
Logger.getLogger(AbstractSimpleFastSearchCommand.class);
private static final String ERR_PARSE_ERROR = "Unable to parse date {0} or
{1}";
-
+
private final String format;
private final SortOrder sortOrder;
@@ -36,7 +35,6 @@
}
/**
- *
* @param format A DateFormat string.
*/
ModifierDateComparator(final String format, final SortOrder sortOrder) {
@@ -44,7 +42,9 @@
this.sortOrder = sortOrder;
}
- /** @{inheritDoc} */
+ /**
+ * @{inheritDoc}
+ */
public int compare(final Modifier m1, final Modifier m2) {
final DateFormat fmt = new SimpleDateFormat(format);
@@ -54,7 +54,7 @@
final Date d1 = fmt.parse(m1.getName());
final Date d2 = fmt.parse(m2.getName());
- switch(sortOrder) {
+ switch (sortOrder) {
case ASCENDING:
return d1.compareTo(d2);
case DESCENDING:
Modified:
branches/2.12/result-spi/src/main/java/no/schibstedsok/searchportal/result/Navigator.java
===================================================================
---
branches/2.12/result-spi/src/main/java/no/schibstedsok/searchportal/result/Navigator.java
2007-05-04 06:07:14 UTC (rev 4994)
+++
branches/2.12/result-spi/src/main/java/no/schibstedsok/searchportal/result/Navigator.java
2007-05-04 16:10:18 UTC (rev 4995)
@@ -26,6 +26,7 @@
MONTH_YEAR(),
DAY_MONTH_YEAR(),
DAY_MONTH_YEAR_DESCENDING,
+ YEAR_MONTH,
NONE
}
Modified:
branches/2.12/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/ClusteringEspFastCommandConfig.java
===================================================================
---
branches/2.12/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/ClusteringEspFastCommandConfig.java
2007-05-04 06:07:14 UTC (rev 4994)
+++
branches/2.12/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/ClusteringEspFastCommandConfig.java
2007-05-04 16:10:18 UTC (rev 4995)
@@ -16,27 +16,10 @@
private String clusterIdParameter = "clusterId";
private int resultsPerCluster;
private String clusterField;
- private String userSortParameter;
- private String sortField;
- private String defaultSort;
/**
* @return
*/
- public String getUserSortParameter() {
- return userSortParameter;
- }
-
- /**
- * @param userSortParameter
- */
- public void setUserSortParameter(String userSortParameter) {
- this.userSortParameter = userSortParameter;
- }
-
- /**
- * @return
- */
public String getClusterIdParameter() {
return clusterIdParameter;
}
@@ -76,35 +59,7 @@
this.clusterField = clusterField;
}
- /**
- * @return
- */
- public String getSortField() {
- return sortField;
- }
- /**
- * @param sortField
- */
- public void setSortField(String sortField) {
- this.sortField = sortField;
- }
-
-
- /**
- * @return
- */
- public String getDefaultSort() {
- return defaultSort;
- }
-
- /**
- * @param defaultSort
- */
- public void setDefaultSort(String defaultSort) {
- this.defaultSort = defaultSort;
- }
-
@Override
public CommandConfig readSearchConfiguration(
final Element element,
@@ -116,10 +71,6 @@
.fillBeanProperty(this, inherit, "clusterIdParameter",
ParseType.String, element, "clusterId");
AbstractDocumentFactory.fillBeanProperty(this, inherit,
"resultsPerCluster", ParseType.Int, element, "");
AbstractDocumentFactory.fillBeanProperty(this, inherit,
"clusterField", ParseType.String, element, "cluster");
- AbstractDocumentFactory.fillBeanProperty(this, inherit, "sortField",
ParseType.String, element, "publishedtime");
- AbstractDocumentFactory.fillBeanProperty(this, inherit, "defaultSort",
ParseType.String, element, "descending");
- AbstractDocumentFactory.fillBeanProperty(this, inherit,
"userSortParameter", ParseType.String, element, "sort");
-
return this;
}
Modified:
branches/2.12/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/NewsEspCommandConfig.java
===================================================================
---
branches/2.12/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/NewsEspCommandConfig.java
2007-05-04 06:07:14 UTC (rev 4994)
+++
branches/2.12/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/NewsEspCommandConfig.java
2007-05-04 16:10:18 UTC (rev 4995)
@@ -20,11 +20,60 @@
private String mediumParameter = "medium";
private String nestedResultsField;
private int collapsingMaxFetch;
+ private String userSortParameter;
+ private String sortField;
+ private String defaultSort;
+
private boolean ignoreOffset = false;
+ private String relevanceSortField;
+
/**
* @return
*/
+ public String getUserSortParameter() {
+ return userSortParameter;
+ }
+
+ /**
+ * @param userSortParameter
+ */
+ public void setUserSortParameter(String userSortParameter) {
+ this.userSortParameter = userSortParameter;
+ }
+
+ /**
+ * @return
+ */
+ public String getSortField() {
+ return sortField;
+ }
+
+ /**
+ * @param sortField
+ */
+ public void setSortField(String sortField) {
+ this.sortField = sortField;
+ }
+
+
+ /**
+ * @return
+ */
+ public String getDefaultSort() {
+ return defaultSort;
+ }
+
+ /**
+ * @param defaultSort
+ */
+ public void setDefaultSort(String defaultSort) {
+ this.defaultSort = defaultSort;
+ }
+
+ /**
+ * @return
+ */
public int getCollapsingMaxFetch() {
return collapsingMaxFetch;
}
@@ -89,6 +138,23 @@
this.mediumParameter = mediumParameter;
}
+ public boolean isIgnoreOffset() {
+ return ignoreOffset;
+ }
+
+ public void setIgnoreOffset(boolean ignoreOffset) {
+ this.ignoreOffset = ignoreOffset;
+ }
+
+
+ public String getRelevanceSortField() {
+ return relevanceSortField;
+ }
+
+ public void setRelevanceSortField(String relevanceSortField) {
+ this.relevanceSortField = relevanceSortField;
+ }
+
@Override
public CommandConfig readSearchConfiguration(
final Element element,
@@ -109,17 +175,12 @@
AbstractDocumentFactory
.fillBeanProperty(this, inherit, "ignoreOffset",
ParseType.Boolean, element, "false");
+ AbstractDocumentFactory.fillBeanProperty(this, inherit, "sortField",
ParseType.String, element, "publishedtime");
+ AbstractDocumentFactory.fillBeanProperty(this, inherit, "defaultSort",
ParseType.String, element, "descending");
+ AbstractDocumentFactory.fillBeanProperty(this, inherit,
"userSortParameter", ParseType.String, element, "sort");
+ AbstractDocumentFactory.fillBeanProperty(this, inherit,
"relevanceSortField", ParseType.String, element, "freshnessprofile");
return this;
}
- public boolean isIgnoreOffset() {
- return ignoreOffset;
- }
-
- public void setIgnoreOffset(boolean ignoreOffset) {
- this.ignoreOffset = ignoreOffset;
- }
-
-
}
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits