You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2012/08/14 02:39:53 UTC
svn commit: r1372689 - in /lucene/dev/branches/branch_4x: ./ dev-tools/
lucene/ lucene/analysis/
lucene/analysis/icu/src/java/org/apache/lucene/collation/ lucene/backwards/
lucene/benchmark/ lucene/core/ lucene/demo/ lucene/facet/ lucene/grouping/
luce...
Author: hossman
Date: Tue Aug 14 00:39:51 2012
New Revision: 1372689
URL: http://svn.apache.org/viewvc?rev=1372689&view=rev
Log:
SOLR-3670: New CountFieldValuesUpdateProcessorFactory (merge r1372687)
Added:
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/update/processor/CountFieldValuesUpdateProcessorFactory.java
- copied unchanged from r1372687, lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/CountFieldValuesUpdateProcessorFactory.java
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/dev-tools/ (props changed)
lucene/dev/branches/branch_4x/lucene/ (props changed)
lucene/dev/branches/branch_4x/lucene/BUILD.txt (props changed)
lucene/dev/branches/branch_4x/lucene/CHANGES.txt (props changed)
lucene/dev/branches/branch_4x/lucene/JRE_VERSION_MIGRATION.txt (props changed)
lucene/dev/branches/branch_4x/lucene/LICENSE.txt (props changed)
lucene/dev/branches/branch_4x/lucene/MIGRATE.txt (props changed)
lucene/dev/branches/branch_4x/lucene/NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/lucene/README.txt (props changed)
lucene/dev/branches/branch_4x/lucene/analysis/ (props changed)
lucene/dev/branches/branch_4x/lucene/analysis/icu/src/java/org/apache/lucene/collation/ICUCollationKeyFilterFactory.java (props changed)
lucene/dev/branches/branch_4x/lucene/backwards/ (props changed)
lucene/dev/branches/branch_4x/lucene/benchmark/ (props changed)
lucene/dev/branches/branch_4x/lucene/build.xml (props changed)
lucene/dev/branches/branch_4x/lucene/common-build.xml (props changed)
lucene/dev/branches/branch_4x/lucene/core/ (props changed)
lucene/dev/branches/branch_4x/lucene/demo/ (props changed)
lucene/dev/branches/branch_4x/lucene/facet/ (props changed)
lucene/dev/branches/branch_4x/lucene/grouping/ (props changed)
lucene/dev/branches/branch_4x/lucene/highlighter/ (props changed)
lucene/dev/branches/branch_4x/lucene/ivy-settings.xml (props changed)
lucene/dev/branches/branch_4x/lucene/join/ (props changed)
lucene/dev/branches/branch_4x/lucene/licenses/ (props changed)
lucene/dev/branches/branch_4x/lucene/memory/ (props changed)
lucene/dev/branches/branch_4x/lucene/misc/ (props changed)
lucene/dev/branches/branch_4x/lucene/module-build.xml (props changed)
lucene/dev/branches/branch_4x/lucene/queries/ (props changed)
lucene/dev/branches/branch_4x/lucene/queryparser/ (props changed)
lucene/dev/branches/branch_4x/lucene/sandbox/ (props changed)
lucene/dev/branches/branch_4x/lucene/site/ (props changed)
lucene/dev/branches/branch_4x/lucene/spatial/ (props changed)
lucene/dev/branches/branch_4x/lucene/suggest/ (props changed)
lucene/dev/branches/branch_4x/lucene/test-framework/ (props changed)
lucene/dev/branches/branch_4x/lucene/tools/ (props changed)
lucene/dev/branches/branch_4x/solr/ (props changed)
lucene/dev/branches/branch_4x/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_4x/solr/LICENSE.txt (props changed)
lucene/dev/branches/branch_4x/solr/NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/solr/README.txt (props changed)
lucene/dev/branches/branch_4x/solr/build.xml (props changed)
lucene/dev/branches/branch_4x/solr/cloud-dev/ (props changed)
lucene/dev/branches/branch_4x/solr/common-build.xml (props changed)
lucene/dev/branches/branch_4x/solr/contrib/ (props changed)
lucene/dev/branches/branch_4x/solr/core/ (props changed)
lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/solrconfig-update-processor-chains.xml
lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java
lucene/dev/branches/branch_4x/solr/dev-tools/ (props changed)
lucene/dev/branches/branch_4x/solr/example/ (props changed)
lucene/dev/branches/branch_4x/solr/lib/ (props changed)
lucene/dev/branches/branch_4x/solr/licenses/ (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpclient-LICENSE-ASL.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpclient-NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpcore-LICENSE-ASL.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpcore-NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpmime-LICENSE-ASL.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpmime-NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/solr/scripts/ (props changed)
lucene/dev/branches/branch_4x/solr/solrj/ (props changed)
lucene/dev/branches/branch_4x/solr/test-framework/ (props changed)
lucene/dev/branches/branch_4x/solr/testlogging.properties (props changed)
lucene/dev/branches/branch_4x/solr/webapp/ (props changed)
Modified: lucene/dev/branches/branch_4x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/CHANGES.txt?rev=1372689&r1=1372688&r2=1372689&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/solr/CHANGES.txt Tue Aug 14 00:39:51 2012
@@ -27,6 +27,15 @@ Upgrading from Solr 4.0.0-BETA
In order to better support distributed search mode, the TermVectorComponent's response format has been changed so that if the schema defines a uniqueKeyField, then that field value is used as the "key" for each document in it's response section, instead of the internal lucene doc id. Users w/o a uniqueKeyField will continue to see the same response format. See SOLR-3229 for more details.
+Detailed Change List
+----------------------
+
+New Features
+----------------------
+
+* SOLR-3670: New CountFieldValuesUpdateProcessorFactory makes it easy to index
+ the number of values in another field for later use at query time. (hossman)
+
Optimizations
----------------------
Modified: lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/solrconfig-update-processor-chains.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/solrconfig-update-processor-chains.xml?rev=1372689&r1=1372688&r2=1372689&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/solrconfig-update-processor-chains.xml (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test-files/solr/collection1/conf/solrconfig-update-processor-chains.xml Tue Aug 14 00:39:51 2012
@@ -231,6 +231,12 @@
</processor>
</updateRequestProcessorChain>
+ <updateRequestProcessorChain name="count">
+ <processor class="solr.CountFieldValuesUpdateProcessorFactory">
+ <str name="fieldName">count_field</str>
+ </processor>
+ </updateRequestProcessorChain>
+
<updateRequestProcessorChain name="ignore-not-in-schema">
<processor class="solr.IgnoreFieldUpdateProcessorFactory" />
</updateRequestProcessorChain>
@@ -344,6 +350,20 @@
</processor>
</updateRequestProcessorChain>
+ <updateRequestProcessorChain name="clone-then-count">
+ <processor class="solr.CloneFieldUpdateProcessorFactory">
+ <str name="source">category</str>
+ <str name="dest">category_count</str>
+ </processor>
+ <processor class="solr.CountFieldValuesUpdateProcessorFactory">
+ <str name="fieldName">category_count</str>
+ </processor>
+ <processor class="solr.DefaultValueUpdateProcessorFactory">
+ <str name="fieldName">category_count</str>
+ <int name="value">0</int>
+ </processor>
+ </updateRequestProcessorChain>
+
<updateRequestProcessorChain name="regex-replace">
<processor class="solr.RegexReplaceProcessorFactory">
<str name="fieldName">content</str>
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java?rev=1372689&r1=1372688&r2=1372689&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java Tue Aug 14 00:39:51 2012
@@ -721,6 +721,58 @@ public class FieldMutatingUpdateProcesso
}
+ public void testCountValues() throws Exception {
+
+ SolrInputDocument d = null;
+
+ // trivial
+ d = processAdd("count",
+ doc(f("id", "1111"),
+ f("count_field", "aaa", "bbb", "ccc")));
+
+ assertNotNull(d);
+ assertEquals(3, d.getFieldValue("count_field"));
+
+ // edge case: no values to count, means no count
+ // (use default if you want one)
+ d = processAdd("count",
+ doc(f("id", "1111")));
+
+ assertNotNull(d);
+ assertFalse(d.containsKey("count_field"));
+
+ // typical usecase: clone and count
+ d = processAdd("clone-then-count",
+ doc(f("id", "1111"),
+ f("category", "scifi", "war", "space"),
+ f("editors", "John W. Campbell"),
+ f("list_price", 1000)));
+ assertNotNull(d);
+ assertEquals(Arrays.asList("scifi", "war", "space"),
+ d.getFieldValues("category"));
+ assertEquals(3,
+ d.getFieldValue("category_count"));
+ assertEquals(Arrays.asList("John W. Campbell"),
+ d.getFieldValues("editors"));
+ assertEquals(1000,d.getFieldValue("list_price"));
+
+ // typical usecase: clone and count demonstrating default
+ d = processAdd("clone-then-count",
+ doc(f("id", "1111"),
+ f("editors", "Anonymous"),
+ f("list_price", 1000)));
+ assertNotNull(d);
+ assertEquals(0,
+ d.getFieldValue("category_count"));
+ assertEquals(Arrays.asList("Anonymous"),
+ d.getFieldValues("editors"));
+ assertEquals(1000,d.getFieldValue("list_price"));
+
+
+
+
+ }
+
public void testCloneCombinations() throws Exception {
SolrInputDocument d = null;