Author: stianh
Date: 2007-05-22 11:38:43 +0200 (Tue, 22 May 2007)
New Revision: 5132
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AddressSearchCommand.java
Log:
SEARCH-2182 Removed duplicates in SearchResult
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AddressSearchCommand.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AddressSearchCommand.java
2007-05-22 08:45:38 UTC (rev 5131)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AddressSearchCommand.java
2007-05-22 09:38:43 UTC (rev 5132)
@@ -5,9 +5,10 @@
package no.schibstedsok.searchportal.mode.command;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
-import java.util.Map;
+import java.util.List;
import no.fast.ds.search.ISearchParameters;
import no.fast.ds.search.SearchParameter;
@@ -43,12 +44,12 @@
public final ResultList<? extends ResultItem> execute() {
final ResultList<ResultItem> sr = (ResultList<ResultItem>)
super.execute();
-
+ List<ResultItem> itemsToRemove = new ArrayList<ResultItem>();
if (getSearchConfiguration().isCollapsing()) {
String prevCollapseId = "";
for (ResultItem item : sr.getResults()) {
if (item.getField("collapseid").equals(prevCollapseId)) {
- sr.removeResult(item);
+ itemsToRemove.add(item);
} else if (item.getField("streetHash") != null) {
final HashMap<String,String> streetNumbers = new
LinkedHashMap<String,String>();
for (String record :
item.getField("streetHash").split(";")) {
@@ -56,8 +57,13 @@
streetNumbers.put(values[0], values[1]);
}
sr.replaceResult(item,
item.addObjectField("streetHashList", streetNumbers));
+ prevCollapseId = item.getField("collapseid");
}
}
+
+ for(ResultItem item : itemsToRemove){
+ sr.removeResult(item);
+ }
}
return sr;
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits