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

ttdi commented on SOLR-236:
---------------------------

hi,experts,
 thanks for the great work!
 now i download solr1.4 from 
http://apache.freelamp.com/lucene/solr/1.4.0/apache-solr-1.4.0.zip
and i path this patch:    SOLR-236.patch 2009-12-18 10:16 AM Shalin Shekhar 
Mangar 
like this:
G:\doc\apache-solr-1.4.0>patch.exe -p0 < SOLR-236.patch

it will show some error,and this patch( SOLR-236.patch 2009-12-18 10:16 AM 
)don't support solr1.4 ?


and the result is:
patching file src/test/test-files/solr/conf/solrconfig-fieldcollapse.xml
patching file src/test/test-files/solr/conf/schema-fieldcollapse.xml
patching file src/test/test-files/solr/conf/solrconfig.xml
patching file src/test/test-files/fieldcollapse/testResponse.xml
can't find file to patch at input line 787
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|
|Property changes on: src/test/test-files/fieldcollapse/testResponse.xml
|___________________________________________________________________
|Added: svn:keywords
|   + Date Author Id Revision HeadURL
|Added: svn:eol-style
|   + native
|
|Index: src/test/org/apache/solr/BaseDistributedSearchTestCase.java
|===================================================================
|--- src/test/org/apache/solr/BaseDistributedSearchTestCase.java(revision 
891214)
|+++ src/test/org/apache/solr/BaseDistributedSearchTestCase.java(working copy)
--------------------------
File to patch: SOLR-236.patch
S: No such file or directory
Skip this patch? [y] y
Skipping patch.
2 out of 2 hunks ignored
patching file 
src/test/org/apache/solr/search/fieldcollapse/FieldCollapsingIntegrationTest.java
patching file 
src/test/org/apache/solr/search/fieldcollapse/DistributedFieldCollapsingIntegrationTest.java
patching file 
src/test/org/apache/solr/search/fieldcollapse/NonAdjacentDocumentCollapserTest.java
patching file 
src/test/org/apache/solr/search/fieldcollapse/AdjacentCollapserTest.java
patching file 
src/test/org/apache/solr/handler/component/CollapseComponentTest.java
patching file 
src/test/org/apache/solr/client/solrj/response/FieldCollapseResponseTest.java
patching file src/java/org/apache/solr/search/DocSetAwareCollector.java
patching file src/java/org/apache/solr/search/fieldcollapse/CollapseGroup.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/DocumentCollapseResult.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/DocumentCollapser.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/collector/CollapseCollectorFactory.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/collector/DocumentGroupCountCollapseCollectorFactory.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/collector/aggregate/AverageFunction.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/collector/aggregate/MinFunction.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/collector/aggregate/SumFunction.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/collector/aggregate/MaxFunction.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/collector/aggregate/AggregateFunction.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/collector/CollapseContext.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/collector/DocumentFieldsCollapseCollectorFactory.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/collector/AggregateCollapseCollectorFactory.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/collector/CollapseCollector.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/collector/FieldValueCountCollapseCollectorFactory.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/collector/AbstractCollapseCollector.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/AbstractDocumentCollapser.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/NonAdjacentDocumentCollapser.java
patching file 
src/java/org/apache/solr/search/fieldcollapse/AdjacentDocumentCollapser.java
patching file src/java/org/apache/solr/search/fieldcollapse/util/Counter.java
patching file src/java/org/apache/solr/search/SolrIndexSearcher.java
patching file src/java/org/apache/solr/search/DocSetHitCollector.java
patching file src/java/org/apache/solr/handler/component/CollapseComponent.java
patching file src/java/org/apache/solr/handler/component/QueryComponent.java
Hunk #5 succeeded at 521 with fuzz 2.
Hunk #6 succeeded at 562 (offset -5 lines).
patching file src/java/org/apache/solr/util/DocSetScoreCollector.java
patching file src/common/org/apache/solr/common/params/CollapseParams.java
patching file src/solrj/org/apache/solr/client/solrj/SolrQuery.java
Hunk #1 FAILED at 17.
Hunk #2 FAILED at 50.
Hunk #3 FAILED at 76.
Hunk #4 FAILED at 148.
Hunk #5 FAILED at 197.
Hunk #6 succeeded at 510 (offset -155 lines).
Hunk #7 succeeded at 566 (offset -155 lines).
5 out of 7 hunks FAILED -- saving rejects to file 
src/solrj/org/apache/solr/client/solrj/SolrQuery.java.rej
patching file src/solrj/org/apache/solr/client/solrj/response/QueryResponse.java
Hunk #1 FAILED at 47.
Hunk #2 FAILED at 63.
Hunk #3 succeeded at 122 with fuzz 2 (offset -8 lines).
Hunk #4 succeeded at 320 with fuzz 2 (offset 17 lines).
2 out of 4 hunks FAILED -- saving rejects to file 
src/solrj/org/apache/solr/client/solrj/response/QueryResponse.java.rej
patching file 
src/solrj/org/apache/solr/client/solrj/response/FieldCollapseResponse.java

and in src/solrj/org/apache/solr/client/solrj/SolrQuery.java.rej 

***************
*** 17,28 ****
  
  package org.apache.solr.client.solrj;
  
- import org.apache.solr.common.params.CommonParams;
- import org.apache.solr.common.params.FacetParams;
- import org.apache.solr.common.params.HighlightParams;
- import org.apache.solr.common.params.ModifiableSolrParams;
- import org.apache.solr.common.params.StatsParams;
- import org.apache.solr.common.params.TermsParams;
  
  import java.util.regex.Pattern;
  
--- 17,23 ----
  
  package org.apache.solr.client.solrj;
  
+ import org.apache.solr.common.params.*;
  
  import java.util.regex.Pattern;
  
***************
*** 55,62 ****
      this.set(CommonParams.Q, q);
    }
  
-   /** enable/disable terms.  
-    * 
     * @param b flag to indicate terms should be enabled. <br /> if b==false, 
removes all other terms parameters
     * @return Current reference (<i>this</i>)
     */
--- 50,57 ----
      this.set(CommonParams.Q, q);
    }
  
+   /** enable/disable terms.
+    *
     * @param b flag to indicate terms should be enabled. <br /> if b==false, 
removes all other terms parameters
     * @return Current reference (<i>this</i>)
     */
***************
*** 81,150 ****
      }
      return this;
    }
-   
    public boolean getTerms() {
      return this.getBool(TermsParams.TERMS, false);
    }
-   
    public SolrQuery addTermsField(String field) {
      this.add(TermsParams.TERMS_FIELD, field);
      return this;
    }
-   
    public String[] getTermsFields() {
      return this.getParams(TermsParams.TERMS_FIELD);
    }
-   
    public SolrQuery setTermsLower(String lower) {
      this.set(TermsParams.TERMS_LOWER, lower);
      return this;
    }
-   
    public String getTermsLower() {
      return this.get(TermsParams.TERMS_LOWER, "");
    }
-   
    public SolrQuery setTermsUpper(String upper) {
      this.set(TermsParams.TERMS_UPPER, upper);
      return this;
    }
-   
    public String getTermsUpper() {
      return this.get(TermsParams.TERMS_UPPER, "");
    }
-   
    public SolrQuery setTermsUpperInclusive(boolean b) {
      this.set(TermsParams.TERMS_UPPER_INCLUSIVE, b);
      return this;
    }
-   
    public boolean getTermsUpperInclusive() {
      return this.getBool(TermsParams.TERMS_UPPER_INCLUSIVE, false);
    }
-   
    public SolrQuery setTermsLowerInclusive(boolean b) {
      this.set(TermsParams.TERMS_LOWER_INCLUSIVE, b);
      return this;
    }
-   
    public boolean getTermsLowerInclusive() {
      return this.getBool(TermsParams.TERMS_LOWER_INCLUSIVE, true);
    }
-  
    public SolrQuery setTermsLimit(int limit) {
      this.set(TermsParams.TERMS_LIMIT, limit);
      return this;
    }
-   
    public int getTermsLimit() {
      return this.getInt(TermsParams.TERMS_LIMIT, 10);
    }
-  
    public SolrQuery setTermsMinCount(int cnt) {
      this.set(TermsParams.TERMS_MINCOUNT, cnt);
      return this;
    }
-   
    public int getTermsMinCount() {
      return this.getInt(TermsParams.TERMS_MINCOUNT, 1);
    }
--- 76,145 ----
      }
      return this;
    }
+ 
    public boolean getTerms() {
      return this.getBool(TermsParams.TERMS, false);
    }
+ 
    public SolrQuery addTermsField(String field) {
      this.add(TermsParams.TERMS_FIELD, field);
      return this;
    }
+ 
    public String[] getTermsFields() {
      return this.getParams(TermsParams.TERMS_FIELD);
    }
+ 
    public SolrQuery setTermsLower(String lower) {
      this.set(TermsParams.TERMS_LOWER, lower);
      return this;
    }
+ 
    public String getTermsLower() {
      return this.get(TermsParams.TERMS_LOWER, "");
    }
+ 
    public SolrQuery setTermsUpper(String upper) {
      this.set(TermsParams.TERMS_UPPER, upper);
      return this;
    }
+ 
    public String getTermsUpper() {
      return this.get(TermsParams.TERMS_UPPER, "");
    }
+ 
    public SolrQuery setTermsUpperInclusive(boolean b) {
      this.set(TermsParams.TERMS_UPPER_INCLUSIVE, b);
      return this;
    }
+ 
    public boolean getTermsUpperInclusive() {
      return this.getBool(TermsParams.TERMS_UPPER_INCLUSIVE, false);
    }
+ 
    public SolrQuery setTermsLowerInclusive(boolean b) {
      this.set(TermsParams.TERMS_LOWER_INCLUSIVE, b);
      return this;
    }
+ 
    public boolean getTermsLowerInclusive() {
      return this.getBool(TermsParams.TERMS_LOWER_INCLUSIVE, true);
    }
+ 
    public SolrQuery setTermsLimit(int limit) {
      this.set(TermsParams.TERMS_LIMIT, limit);
      return this;
    }
+ 
    public int getTermsLimit() {
      return this.getInt(TermsParams.TERMS_LIMIT, 10);
    }
+ 
    public SolrQuery setTermsMinCount(int cnt) {
      this.set(TermsParams.TERMS_MINCOUNT, cnt);
      return this;
    }
+ 
    public int getTermsMinCount() {
      return this.getInt(TermsParams.TERMS_MINCOUNT, 1);
    }
***************
*** 153,186 ****
      this.set(TermsParams.TERMS_MAXCOUNT, cnt);
      return this;
    }
-   
    public int getTermsMaxCount() {
      return this.getInt(TermsParams.TERMS_MAXCOUNT, -1);
    }
-   
    public SolrQuery setTermsPrefix(String prefix) {
      this.set(TermsParams.TERMS_PREFIX_STR, prefix);
      return this;
    }
-   
    public String getTermsPrefix() {
      return this.get(TermsParams.TERMS_PREFIX_STR, "");
    }
-   
    public SolrQuery setTermsRaw(boolean b) {
      this.set(TermsParams.TERMS_RAW, b);
      return this;
    }
-   
    public boolean getTermsRaw() {
      return this.getBool(TermsParams.TERMS_RAW, false);
    }
-  
    public SolrQuery setTermsSortString(String type) {
      this.set(TermsParams.TERMS_SORT, type);
      return this;
    }
-   
    public String getTermsSortString() {
      return this.get(TermsParams.TERMS_SORT, TermsParams.TERMS_SORT_COUNT);
    }
--- 148,181 ----
      this.set(TermsParams.TERMS_MAXCOUNT, cnt);
      return this;
    }
+ 
    public int getTermsMaxCount() {
      return this.getInt(TermsParams.TERMS_MAXCOUNT, -1);
    }
+ 
    public SolrQuery setTermsPrefix(String prefix) {
      this.set(TermsParams.TERMS_PREFIX_STR, prefix);
      return this;
    }
+ 
    public String getTermsPrefix() {
      return this.get(TermsParams.TERMS_PREFIX_STR, "");
    }
+ 
    public SolrQuery setTermsRaw(boolean b) {
      this.set(TermsParams.TERMS_RAW, b);
      return this;
    }
+ 
    public boolean getTermsRaw() {
      return this.getBool(TermsParams.TERMS_RAW, false);
    }
+ 
    public SolrQuery setTermsSortString(String type) {
      this.set(TermsParams.TERMS_SORT, type);
      return this;
    }
+ 
    public String getTermsSortString() {
      return this.get(TermsParams.TERMS_SORT, TermsParams.TERMS_SORT_COUNT);
    }
***************
*** 202,208 ****
    public String[] getTermsRegexFlags()  {
      return this.getParams(TermsParams.TERMS_REGEXP_FLAG);
    }
-      
    /** Add field(s) for facet computation.
     * 
     * @param fields Array of field names from the IndexSchema
--- 197,203 ----
    public String[] getTermsRegexFlags()  {
      return this.getParams(TermsParams.TERMS_REGEXP_FLAG);
    }
+ 
    /** Add field(s) for facet computation.
     * 
     * @param fields Array of field names from the IndexSchema



in src/solrj/org/apache/solr/client/solrj/response/QueryResponse.java.rej:

***************
*** 47,52 ****
    private NamedList<Object> _spellInfo = null;
    private NamedList<Object> _statsInfo = null;
    private NamedList<Object> _termsInfo = null;
  
    // Facet stuff
    private Map<String,Integer> _facetQuery = null;
--- 47,53 ----
    private NamedList<Object> _spellInfo = null;
    private NamedList<Object> _statsInfo = null;
    private NamedList<Object> _termsInfo = null;
+   private NamedList<Object> _collapseInfo = null;
  
    // Facet stuff
    private Map<String,Integer> _facetQuery = null;
***************
*** 62,68 ****
  
    // Terms Response
    private TermsResponse _termsResponse = null;
-   
    // Field stats Response
    private Map<String,FieldStatsInfo> _fieldStatsInfo = null;
    
--- 63,72 ----
  
    // Terms Response
    private TermsResponse _termsResponse = null;
+ 
+   // Field collapse response
+   private FieldCollapseResponse _fieldCollapseResponse = null;  
+ 
    // Field stats Response
    private Map<String,FieldStatsInfo> _fieldStatsInfo = null;
    



> 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
>            Assignee: Shalin Shekhar Mangar
>             Fix For: 1.5
>
>         Attachments: collapsing-patch-to-1.3.0-dieter.patch, 
> collapsing-patch-to-1.3.0-ivan.patch, collapsing-patch-to-1.3.0-ivan_2.patch, 
> collapsing-patch-to-1.3.0-ivan_3.patch, field-collapse-3.patch, 
> field-collapse-4-with-solrj.patch, field-collapse-5.patch, 
> field-collapse-5.patch, field-collapse-5.patch, field-collapse-5.patch, 
> field-collapse-5.patch, field-collapse-5.patch, field-collapse-5.patch, 
> field-collapse-5.patch, field-collapse-5.patch, field-collapse-5.patch, 
> field-collapse-5.patch, field-collapse-5.patch, field-collapse-5.patch, 
> field-collapse-5.patch, field-collapse-5.patch, 
> field-collapse-solr-236-2.patch, field-collapse-solr-236.patch, 
> field-collapsing-extended-592129.patch, field_collapsing_1.1.0.patch, 
> field_collapsing_1.3.patch, field_collapsing_dsteigerwald.diff, 
> field_collapsing_dsteigerwald.diff, field_collapsing_dsteigerwald.diff, 
> quasidistributed.additional.patch, SOLR-236-FieldCollapsing.patch, 
> SOLR-236-FieldCollapsing.patch, SOLR-236-FieldCollapsing.patch, 
> SOLR-236.patch, SOLR-236.patch, SOLR-236.patch, solr-236.patch, 
> SOLR-236_collapsing.patch, SOLR-236_collapsing.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