Thank you. I'm running vanilla Solr 5.1 / Flume 1.6. Kite 1.x doesn't support solr5.x AFIAK, rather Solr provides upstream versions of solr-morphlines-cell and solr-morphlines-core. I've downloaded Solr 5.1 source and added the patch to LoadSolrBuilder.java (which looked quite dated compared to what is slated for kite 1.2
private SolrInputDocument convert(Record record) {
Map<String, Collection<Object>> map = record.getFields().asMap();
SolrInputDocument doc = new SolrInputDocument(new HashMap(2 * map.size()));
for (Map.Entry<String, Collection<Object>> entry : map.entrySet()) {
String key = entry.getKey();
//doc.setField(key, entry.getValue(), getBoost(key));
// Patch to fix solr updating entire document
//
https://github.com/kite-sdk/kite/commit/f77b7bf8b124bcb6154b3ea7f3e47826c2046eac#diff-51ec825471148c657183a2bf0a9ae06b Collection<Object> values = entry.getValue();
if (values.size() == 1 && values.iterator().next() instanceof Map) {
doc.setField(key, values.iterator().next(), getBoost(key)); // it is an atomic update
} else {
doc.setField(key, values, getBoost(key));
}
}
return doc;
}
I compiled that and unfortunately it's still erring:
Caused by: org.kitesdk.morphline.api.MorphlineRuntimeException: org.apache.solr.client.solrj.SolrServerException: org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server [doc=3_29342115] missing required field: title
at org.apache.solr.morphlines.solr.LoadSolrBuilder$LoadSolr.doNotify(LoadSolrBuilder.java:95)
Any thoughts?