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

Reply via email to