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));
}