You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by sh...@apache.org on 2008/12/30 08:19:26 UTC
svn commit: r730059 - in /lucene/solr/trunk/contrib/dataimporthandler/src:
main/java/org/apache/solr/handler/dataimport/
test/java/org/apache/solr/handler/dataimport/
Author: shalin
Date: Mon Dec 29 23:19:26 2008
New Revision: 730059
URL: http://svn.apache.org/viewvc?rev=730059&view=rev
Log:
SOLR-942 -- Different Fields with same column and different names do not work
Modified:
lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataConfig.java
lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java
lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder.java
Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataConfig.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataConfig.java?rev=730059&r1=730058&r2=730059&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataConfig.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataConfig.java Mon Dec 29 23:19:26 2008
@@ -100,7 +100,7 @@
public Script script;
- public Map<String, Field> colNameVsField;
+ public Map<String, List<Field>> colNameVsField;
public Entity() {
}
@@ -114,11 +114,14 @@
allAttributes = getAllAttributes(element);
List<Element> n = getChildNodes(element, "field");
fields = new ArrayList<Field>();
- colNameVsField = new HashMap<String, Field>();
+ colNameVsField = new HashMap<String, List<Field>>();
for (Element elem : n) {
Field field = new Field(elem);
fields.add(field);
- colNameVsField.put(field.column, field);
+ List<Field> l = colNameVsField.get(field.column);
+ if(l == null) l = new ArrayList<Field>();
+ l.add(field);
+ colNameVsField.put(field.column, l);
}
n = getChildNodes(element, "entity");
if (!n.isEmpty())
Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java?rev=730059&r1=730058&r2=730059&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java Mon Dec 29 23:19:26 2008
@@ -378,7 +378,7 @@
// All fields starting with $ are special values and don't need to be added
continue;
}
- DataConfig.Field field = entity.colNameVsField.get(key);
+ List<DataConfig.Field> field = entity.colNameVsField.get(key);
if (field == null && dataImporter.getSchema() != null) {
// This can be a dynamic field or a field which does not have an entry in data-config ( an implicit field)
SchemaField sf = dataImporter.getSchema().getFieldOrNull(key);
@@ -390,11 +390,12 @@
}
//else do nothing. if we add it it may fail
} else {
- if (field != null && field.toWrite) {
- addFieldToDoc(entry.getValue(), field.getName(), field.boost, field.multiValued, doc);
+ if (field != null ) {
+ for (DataConfig.Field f : field) {
+ if(f.toWrite) addFieldToDoc(entry.getValue(), f.getName(), f.boost, f.multiValued, doc);
+ }
}
}
-
}
}
Modified: lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder.java?rev=730059&r1=730058&r2=730059&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder.java Mon Dec 29 23:19:26 2008
@@ -135,9 +135,9 @@
Map<String, Object> map = (Map<String, Object>) l.get(i);
SolrInputDocument doc = swi.docs.get(i);
for (Map.Entry<String, Object> entry : map.entrySet()) {
- Assert.assertEquals(entry.getValue(), doc.getFieldValue(entry
- .getKey()));
+ Assert.assertEquals(entry.getValue(), doc.getFieldValue(entry.getKey()));
}
+ Assert.assertEquals(map.get("desc"), doc.getFieldValue("desc_s"));
}
Assert.assertEquals(1, di.getDocBuilder().importStatistics.queryCount
.get());
@@ -182,7 +182,8 @@
+ " <document name=\"X\" >\n"
+ " <entity name=\"x\" query=\"select * from x\">\n"
+ " <field column=\"id\"/>\n"
- + " <field column=\"desc\"/>\n" + " </entity>\n"
+ + " <field column=\"desc\"/>\n"
+ + " <field column=\"desc\" name=\"desc_s\" />" + " </entity>\n"
+ " </document>\n" + "</dataConfig>";
}