You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2015/01/16 09:43:15 UTC

svn commit: r1652365 - in /lucene/dev/branches/branch_5x: ./ solr/ solr/contrib/ solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/ solr/contrib...

Author: noble
Date: Fri Jan 16 08:43:15 2015
New Revision: 1652365

URL: http://svn.apache.org/r1652365
Log:
SOLR-5147 Support child documents in DIH

Added:
    lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestHierarchicalDocBuilder.java
      - copied, changed from r1652360, lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestHierarchicalDocBuilder.java
Modified:
    lucene/dev/branches/branch_5x/   (props changed)
    lucene/dev/branches/branch_5x/solr/   (props changed)
    lucene/dev/branches/branch_5x/solr/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/branch_5x/solr/contrib/   (props changed)
    lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java
    lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/ConfigNameConstants.java
    lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/Entity.java
    lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-schema.xml

Modified: lucene/dev/branches/branch_5x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/CHANGES.txt?rev=1652365&r1=1652364&r2=1652365&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/solr/CHANGES.txt Fri Jan 16 08:43:15 2015
@@ -264,6 +264,8 @@ New Features
   for Collapse and Expand (Joel Bernstein)
 
 * SOLR-6937: In schemaless mode ,replace spaces and special characters with underscore (Noble Paul)
+
+* SOLR-5147: Support child documents in DIH (Shawn Heisey, Thomas Champagne, Mikhail Khludnev via Noble Paul
   
 
 Bug Fixes

Modified: lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java?rev=1652365&r1=1652364&r2=1652365&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java (original)
+++ lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java Fri Jan 16 08:43:15 2015
@@ -492,15 +492,29 @@ public class DocBuilder {
             getDebugLogger().log(DIHLogLevels.ENTITY_OUT, epw.getEntity().getName(), arow);
           }
           importStatistics.rowsCount.incrementAndGet();
+          
+          DocWrapper childDoc = null;
           if (doc != null) {
-            handleSpecialCommands(arow, doc);
-            addFields(epw.getEntity(), doc, arow, vr);
+            if (epw.getEntity().isChild()) {
+              childDoc = new DocWrapper();
+              handleSpecialCommands(arow, childDoc);
+              addFields(epw.getEntity(), childDoc, arow, vr);
+              doc.addChildDocument(childDoc);
+            } else {
+              handleSpecialCommands(arow, doc);
+              addFields(epw.getEntity(), doc, arow, vr);
+            }
           }
           if (epw.getEntity().getChildren() != null) {
             vr.addNamespace(epw.getEntity().getName(), arow);
             for (EntityProcessorWrapper child : epw.getChildren()) {
-              buildDocument(vr, doc,
+              if (childDoc != null) {
+              buildDocument(vr, childDoc,
                   child.getEntity().isDocRoot() ? pk : null, child, false, ctx, entitiesToDestroy);
+              } else {
+                buildDocument(vr, doc,
+                    child.getEntity().isDocRoot() ? pk : null, child, false, ctx, entitiesToDestroy);
+              }
             }
             vr.removeNamespace(epw.getEntity().getName());
           }

Modified: lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/ConfigNameConstants.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/ConfigNameConstants.java?rev=1652365&r1=1652364&r2=1652365&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/ConfigNameConstants.java (original)
+++ lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/ConfigNameConstants.java Fri Jan 16 08:43:15 2015
@@ -40,6 +40,8 @@ public class ConfigNameConstants {
   public static final String IMPORTER_NS_SHORT = "dih";
 
   public static final String ROOT_ENTITY = "rootEntity";
+  
+  public static final String CHILD = "child";
 
   public static final String FUNCTION = "function";
 

Modified: lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/Entity.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/Entity.java?rev=1652365&r1=1652364&r2=1652365&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/Entity.java (original)
+++ lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/Entity.java Fri Jan 16 08:43:15 2015
@@ -41,6 +41,7 @@ public class Entity {
   private final String processorName;
   private final Entity parentEntity;
   private final boolean docRoot;
+  private final boolean child;
   private final List<Entity> children;
   private final List<EntityField> fields;
   private final Map<String,Set<EntityField>> colNameVsField;
@@ -77,6 +78,9 @@ public class Entity {
       docRoot = false;
     }
     
+    String childValue = ConfigParseUtil.getStringAttribute(element, ConfigNameConstants.CHILD, null);
+    child = "true".equals(childValue);
+    
     Map<String,String> modAttributes = ConfigParseUtil
         .getAllAttributes(element);
     modAttributes.put(ConfigNameConstants.DATA_SRC, this.dataSourceName);
@@ -219,4 +223,8 @@ public class Entity {
   public List<Map<String,String>> getAllFieldsList() {
     return allFieldAttributes;
   }
+
+  public boolean isChild() {
+    return child;
+  }
 }

Modified: lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-schema.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-schema.xml?rev=1652365&r1=1652364&r2=1652365&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-schema.xml (original)
+++ lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-schema.xml Fri Jan 16 08:43:15 2015
@@ -43,6 +43,7 @@
     <field name="DO_NOT_INDEX" type="ignored" />
 
     <field name="_version_" type="tlong" indexed="true" stored="true" multiValued="false"/>
+    <field name="_root_" type="string" indexed="true" stored="true" multiValued="false"/>
        
     <dynamicField name="*_i"       type="tint"    indexed="true"  stored="true"/>
     <dynamicField name="*_s"       type="string"  indexed="true"  stored="true"/>

Copied: lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestHierarchicalDocBuilder.java (from r1652360, lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestHierarchicalDocBuilder.java)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestHierarchicalDocBuilder.java?p2=lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestHierarchicalDocBuilder.java&p1=lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestHierarchicalDocBuilder.java&r1=1652360&r2=1652365&rev=1652365&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestHierarchicalDocBuilder.java (original)
+++ lucene/dev/branches/branch_5x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestHierarchicalDocBuilder.java Fri Jan 16 08:43:15 2015
@@ -27,7 +27,6 @@ import java.util.Locale;
 import java.util.Map;
 
 import org.apache.lucene.document.Document;
-import org.apache.lucene.index.StoredDocument;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.BooleanClause.Occur;
 import org.apache.lucene.search.BooleanQuery;
@@ -223,7 +222,7 @@ public class TestHierarchicalDocBuilder
     assertEquals(values.length, result.totalHits);
     List<String> actualValues = new ArrayList<String>();
     for (int index = 0; index < values.length; ++index) {
-      StoredDocument doc = searcher.doc(result.scoreDocs[index].doc);
+      Document doc = searcher.doc(result.scoreDocs[index].doc);
       actualValues.add(doc.get(field));
     }