[ https://issues.apache.org/jira/browse/SOLR-236?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Noble Paul updated SOLR-236: ---------------------------- Comment: was deleted (was: 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.