Author: gttersen
Date: 2007-04-19 21:11:57 +0200 (Thu, 19 Apr 2007)
New Revision: 4834
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/NewsAggregatorSearchCommand.java
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsMyNewsSearchCommand.java
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/NewsMyNewsQueryTransformer.java
Log:
Lots of fixes for newsAggregator
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-19 15:14:59 UTC (rev 4833)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/ClusteringESPFastCommand.java
2007-04-19 19:11:57 UTC (rev 4834)
@@ -99,7 +99,6 @@
SearchResultItem parentResult = collapseMap.get(collapseId);
if (parentResult == null) {
parentResult = addResult(config, searchResult, document);
- searchResult.addResult(parentResult);
collapseMap.put(collapseId, parentResult);
} else {
SearchResult nestedResult =
parentResult.getNestedSearchResult(nestedResultsField);
@@ -141,7 +140,7 @@
SearchResultItem clusterEntry = null;
SearchResult subResult = null;
- LOG.debug("HitCount=" + result.getDocCount() + ", clusterField=" +
clusterField + ", nestedResultsField=" + nestedResultsField);
+ LOG.debug("HitCount=" + result.getDocCount() + ", clusterField=" +
clusterField + ", nestedResultsField=" + nestedResultsField + ", offset=" +
offset);
for (int i = offset; i < result.getDocCount(); i++) {
try {
final IDocumentSummary document = result.getDocument(i + 1);
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsAggregatorSearchCommand.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsAggregatorSearchCommand.java
2007-04-19 15:14:59 UTC (rev 4833)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsAggregatorSearchCommand.java
2007-04-19 19:11:57 UTC (rev 4834)
@@ -221,42 +221,48 @@
}
private void handleCounts(NewsAggregatorSearchConfiguration config,
Element countsElement, int offset, FastSearchResult searchResult) {
- final String entries =
countsElement.getAttributeValue(ATTRIBUTE_ENTRY_COUNT);
- if (entries != null && entries.length() > 0) {
- searchResult.setHitCount(Integer.parseInt(entries));
- }
- final String clusters =
countsElement.getAttributeValue(ATTRIBUTE_CLUSTER_COUNT);
- if (clusters != null && clusters.length() > 0) {
- if (offset + config.getResultsToReturn() <
Integer.parseInt(clusters)) {
-
searchResult.addField(ClusteringESPFastCommand.PARAM_NEXT_OFFSET,
Integer.toString(offset + config.getResultsToReturn()));
+ if (countsElement != null) {
+ final String entries =
countsElement.getAttributeValue(ATTRIBUTE_ENTRY_COUNT);
+ if (entries != null && entries.length() > 0) {
+ searchResult.setHitCount(Integer.parseInt(entries));
}
+ final String clusters =
countsElement.getAttributeValue(ATTRIBUTE_CLUSTER_COUNT);
+ if (clusters != null && clusters.length() > 0) {
+ if (offset + config.getResultsToReturn() <
Integer.parseInt(clusters)) {
+
searchResult.addField(ClusteringESPFastCommand.PARAM_NEXT_OFFSET,
Integer.toString(offset + config.getResultsToReturn()));
+ }
+ }
}
}
private void handleGeoNav(Element geonavElement, FastSearchResult
searchResult) {
- final List<Element> geoNavElements = geonavElement.getChildren();
- for (Element geoNavElement : geoNavElements) {
- String navigationType =
geoNavElement.getAttributeValue(ATTRIBUTE_TYPE);
- Navigator nav = new
Navigator(geoNavElement.getAttributeValue(ATTRIBUTE_XML), null,
geoNavElement.getAttributeValue(ATTRIBUTE_NAME), null);
- Modifier modifier = new
Modifier(geoNavElement.getAttributeValue(ATTRIBUTE_NAME), -1, nav);
- searchResult.addModifier(navigationType, modifier);
+ if (geonavElement != null) {
+ final List<Element> geoNavElements =
geonavElement.getChildren();
+ for (Element geoNavElement : geoNavElements) {
+ String navigationType =
geoNavElement.getAttributeValue(ATTRIBUTE_TYPE);
+ Navigator nav = new
Navigator(geoNavElement.getAttributeValue(ATTRIBUTE_XML), null,
geoNavElement.getAttributeValue(ATTRIBUTE_NAME), null);
+ Modifier modifier = new
Modifier(geoNavElement.getAttributeValue(ATTRIBUTE_NAME), -1, nav);
+ searchResult.addModifier(navigationType, modifier);
+ }
}
}
private void handleRelated(NewsAggregatorSearchConfiguration config,
Element relatedElement, FastSearchResult searchResult) {
- final List<Element> categoryElements =
relatedElement.getChildren(ELEMENT_CATEGORY);
- for (Element categoryElement : categoryElements) {
- final String categoryType =
categoryElement.getAttributeValue(ATTRIBUTE_TYPE);
+ if (relatedElement != null) {
+ final List<Element> categoryElements =
relatedElement.getChildren(ELEMENT_CATEGORY);
+ for (Element categoryElement : categoryElements) {
+ final String categoryType =
categoryElement.getAttributeValue(ATTRIBUTE_TYPE);
- final List<Modifier> relatedList =
searchResult.getModifiers(categoryType);
- int categoryCount = 0;
- if (relatedList != null) {
- categoryCount = relatedList.size();
+ final List<Modifier> relatedList =
searchResult.getModifiers(categoryType);
+ int categoryCount = 0;
+ if (relatedList != null) {
+ categoryCount = relatedList.size();
+ }
+ if (categoryCount < config.getRelatedMaxCount()) {
+ final Modifier modifier = new
Modifier(categoryElement.getTextTrim(), -1, null);
+ searchResult.addModifier(categoryType, modifier);
+ }
}
- if (categoryCount < config.getRelatedMaxCount()) {
- final Modifier modifier = new
Modifier(categoryElement.getTextTrim(), -1, null);
- searchResult.addModifier(categoryType, modifier);
- }
}
}
@@ -269,42 +275,49 @@
}
private void handleFlatCluster(NewsAggregatorSearchConfiguration
config, Element cluster, SearchCommand searchCommand, SearchResult
searchResult) {
- final Element entryCollectionElement =
cluster.getChild(ELEMENT_ENTRY_COLLECTION);
- final List<Element> entryList =
entryCollectionElement.getChildren();
- searchResult.setHitCount(entryList.size());
+ if (cluster != null) {
+ final Element entryCollectionElement =
cluster.getChild(config.getNestedResultsField());
+ if (entryCollectionElement != null) {
+ final List<Element> entryList =
entryCollectionElement.getChildren();
+ searchResult.setHitCount(entryList.size());
- final HashMap<String, SearchResultItem> collapseMap = new
HashMap<String, SearchResultItem>();
- for (Element entry : entryList) {
- final SearchResultItem searchResultItem = new
BasicSearchResultItem();
- handleEntry(entry, searchResultItem);
- addResult(config, searchResultItem, searchResult,
searchCommand, collapseMap);
+ final HashMap<String, SearchResultItem> collapseMap = new
HashMap<String, SearchResultItem>();
+ for (Element entry : entryList) {
+ final SearchResultItem searchResultItem = new
BasicSearchResultItem();
+ handleEntry(entry, searchResultItem);
+ addResult(config, searchResultItem, searchResult,
searchCommand, collapseMap);
+ }
+ }
}
}
private int handleCluster(NewsAggregatorSearchConfiguration config,
Element cluster, SearchCommand searchCommand, SearchResult searchResult) {
- final SearchResultItem searchResultItem = new
BasicSearchResultItem();
- searchResultItem.addField("size",
Integer.toString(Integer.parseInt(cluster.getAttributeValue(ATTRIBUTE_FULL_COUNT))
- 1));
- searchResultItem.addField(PARAM_CLUSTER_ID,
cluster.getAttributeValue(ATTRIBUTE_CLUSTERID));
+ if (cluster != null) {
+ final SearchResultItem searchResultItem = new
BasicSearchResultItem();
+ searchResultItem.addField("size",
Integer.toString(Integer.parseInt(cluster.getAttributeValue(ATTRIBUTE_FULL_COUNT))
- 1));
+ searchResultItem.addField(PARAM_CLUSTER_ID,
cluster.getAttributeValue(ATTRIBUTE_CLUSTERID));
- final Element entryCollectionElement =
cluster.getChild(ELEMENT_ENTRY_COLLECTION);
- final List<Element> entryList =
entryCollectionElement.getChildren();
- final BasicSearchResult nestedSearchResult = new
BasicSearchResult(searchCommand);
+ final Element entryCollectionElement =
cluster.getChild(ELEMENT_ENTRY_COLLECTION);
+ final List<Element> entryList =
entryCollectionElement.getChildren();
+ final BasicSearchResult nestedSearchResult = new
BasicSearchResult(searchCommand);
- for (int i = 0; i < entryList.size(); i++) {
- Element nestedEntry = entryList.get(i);
- if (i == 0) {
- // First element is main result
- handleEntry(nestedEntry, searchResultItem);
- } else {
- SearchResultItem nestedResultItem = new
BasicSearchResultItem();
- handleEntry(nestedEntry, nestedResultItem);
- addResult(config, nestedResultItem, nestedSearchResult,
searchCommand);
+ for (int i = 0; i < entryList.size(); i++) {
+ Element nestedEntry = entryList.get(i);
+ if (i == 0) {
+ // First element is main result
+ handleEntry(nestedEntry, searchResultItem);
+ } else {
+ SearchResultItem nestedResultItem = new
BasicSearchResultItem();
+ handleEntry(nestedEntry, nestedResultItem);
+ addResult(config, nestedResultItem,
nestedSearchResult, searchCommand);
+ }
}
+
searchResultItem.addNestedSearchResult(config.getNestedResultsField(),
nestedSearchResult);
+ searchResult.addResult(searchResultItem);
+ nestedSearchResult.setHitCount(entryList.size());
+ return entryList.size();
}
- searchResultItem.addNestedSearchResult(ATTRIBUTE_ENTRY_COUNT,
nestedSearchResult);
- searchResult.addResult(searchResultItem);
- nestedSearchResult.setHitCount(entryList.size());
- return entryList.size();
+ return 0;
}
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsMyNewsSearchCommand.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsMyNewsSearchCommand.java
2007-04-19 15:14:59 UTC (rev 4833)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsMyNewsSearchCommand.java
2007-04-19 19:11:57 UTC (rev 4834)
@@ -48,20 +48,17 @@
try {
LOG.debug("Waiting for " + commandName);
collectedResult =
context.getRunningQuery().getSearchResult(commandName);
- if (collectedResult != null) {
- if (type.equals("cluster") &&
collectedResult.getResults().size() > clusterPos) {
- BasicSearchResult tmpResult = new
BasicSearchResult(this);
- SearchResultItem resultItem =
collectedResult.getResults().get(clusterPos);
-
- tmpResult.addResult(resultItem);
- collectedResult = tmpResult;
+ if (collectedResult != null &&
collectedResult.getResults().size() > 0) {
+ SearchResultItem searchResultItem;
+ if (type.equals("knippe") &&
collectedResult.getResults().size() > clusterPos) {
+ searchResultItem =
collectedResult.getResults().get(clusterPos);
clusterPos++;
+ } else {
+ searchResultItem =
collectedResult.getResults().get(0);
}
- if (collectedResult.getResults().size() > 0) {
- SearchResultItem searchResultItem =
collectedResult.getResults().get(0);
- searchResultItem.addField("type", type);
- mergedResult.addResult(searchResultItem);
- }
+ searchResultItem.addField("type", type);
+ mergedResult.addResult(searchResultItem);
+ LOG.debug("Collected " +
searchResultItem.getField("type") + ":" + searchResultItem.getField("title"));
}
} catch (InterruptedException e) {
LOG.error("Command was interrupted", e);
@@ -71,6 +68,7 @@
}
position++;
}
+ mergedResult.setHitCount(position);
return mergedResult;
} else {
return new BasicSearchResult(this);
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-19 15:14:59 UTC (rev 4833)
+++
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsClusterQueryTransformer.java
2007-04-19 19:11:57 UTC (rev 4834)
@@ -53,10 +53,8 @@
if (!emptyQuery) {
sb.append("and(");
}
- sb.append("filter(");
// Using Junkyard, since the parameters seems to be incomplete...
sb.append(getQueryFilter(getContext().getDataModel().getJunkYard()));
- sb.append(')');
if (!emptyQuery) {
sb.append(',');
sb.append(originalQuery);
@@ -85,13 +83,12 @@
filter.append(config.getClusterField()).append(":").append('\"').append(clusterId).append("\"
");
} else {
filter.append(config.getClusterField()).append(":range(1,max) ");
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeZone(TimeZone.getTimeZone("UTC"));
+ calendar.add(Calendar.DAY_OF_WEEK, -config.getMaxAgeInDays());
+ filter.append("and
").append(config.getTimestampField()).append(':');
+
filter.append("range(").append(sdf.format(calendar.getTime())).append(",max)");
}
-
- Calendar calendar = Calendar.getInstance();
- calendar.setTimeZone(TimeZone.getTimeZone("UTC"));
- calendar.add(Calendar.DAY_OF_WEEK, -config.getMaxAgeInDays());
- filter.append("and ").append(config.getTimestampField()).append(':');
-
filter.append("range(").append(sdf.format(calendar.getTime())).append(",max)");
return filter.toString();
}
Modified:
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformer.java
===================================================================
---
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformer.java
2007-04-19 15:14:59 UTC (rev 4833)
+++
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformer.java
2007-04-19 19:11:57 UTC (rev 4834)
@@ -71,7 +71,11 @@
}
LOG.debug("Group at pos: " + config.getPosition() + " is " +
matcher.group(0) + ", looking for " + config.getType());
if (matcher.groupCount() > 0 &&
matcher.group(2).equals(config.getType())) {
- return matcher.group(1);
+ if (config.getFilterField() == null) {
+ return matcher.group(1);
+ } else {
+ return config.getFilterField() + ":(\"" +
matcher.group(1) + "\")";
+ }
} else {
return "";
}
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits