[ 
https://issues.apache.org/jira/browse/SOLR-236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12565012#action_12565012
 ] 

Charles Hornberger commented on SOLR-236:
-----------------------------------------

Here's the simplest change I could think of to make DocSetBase subclasses that 
don't override intersection() (which just means BitDocSet at the moment) stop 
choking when their  intersection() gets called with a NegatedDocSet as the 
{{other}} parameter; it's probably horribly stupid. Also, there should be a 
test.

{code}
Index: src/java/org/apache/solr/search/DocSet.java
===================================================================
--- src/java/org/apache/solr/search/DocSet.java (revision 617738)
+++ src/java/org/apache/solr/search/DocSet.java (working copy)
@@ -193,7 +193,18 @@
     if (other instanceof HashDocSet) {
       return other.intersection(this);
     }
-
+    // you can't call getBits() on a NegatedDocSet, because
+    // getBits() // calls iterator(), and iterator() isn't 
+    // supported by NegatedDocSet
+    if (other instanceof NegatedDocSet) {
+        BitDocSet newdocs = new BitDocSet();
+        for (DocIterator iter = iterator(); iter.hasNext();) {
+          int next = iter.nextDoc();
+          if (other.exists(next))
+           newdocs.add(next);
+        }
+        return newdocs;
+    }
     // Default... handle with bitsets.
     OpenBitSet newbits = (OpenBitSet)(this.getBits().clone());
     newbits.and(other.getBits());
{code}

Comments?

> Field collapsing
> ----------------
>
>                 Key: SOLR-236
>                 URL: https://issues.apache.org/jira/browse/SOLR-236
>             Project: Solr
>          Issue Type: New Feature
>          Components: search
>    Affects Versions: 1.3
>            Reporter: Emmanuel Keller
>         Attachments: field-collapsing-extended-592129.patch, 
> field_collapsing_1.1.0.patch, field_collapsing_1.3.patch, 
> field_collapsing_dsteigerwald.diff, field_collapsing_dsteigerwald.diff, 
> SOLR-236-FieldCollapsing.patch, SOLR-236-FieldCollapsing.patch, 
> SOLR-236-FieldCollapsing.patch
>
>
> This patch include a new feature called "Field collapsing".
> "Used in order to collapse a group of results with similar value for a given 
> field to a single entry in the result set. Site collapsing is a special case 
> of this, where all results for a given web site is collapsed into one or two 
> entries in the result set, typically with an associated "more documents from 
> this site" link. See also Duplicate detection."
> http://www.fastsearch.com/glossary.aspx?m=48&amid=299
> The implementation add 3 new query parameters (SolrParams):
> "collapse.field" to choose the field used to group results
> "collapse.type" normal (default value) or adjacent
> "collapse.max" to select how many continuous results are allowed before 
> collapsing
> TODO (in progress):
> - More documentation (on source code)
> - Test cases
> Two patches:
> - "field_collapsing.patch" for current development version
> - "field_collapsing_1.1.0.patch" for Solr-1.1.0
> P.S.: Feedback and misspelling correction are welcome ;-)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to