add optional idField to AdvancedSolrDocumentConverter
diff --git a/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/update/AdvancedSolrDocumentConverter.java b/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/update/AdvancedSolrDocumentConverter.java
index 96abf89..ce58be3 100644
--- a/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/update/AdvancedSolrDocumentConverter.java
+++ b/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/update/AdvancedSolrDocumentConverter.java
@@ -23,12 +23,19 @@
private final AnyMap _mapping;
+ private final String _idField;
+
public AdvancedSolrDocumentConverter() {
this(null);
}
public AdvancedSolrDocumentConverter(final AnyMap mapping) {
+ this(mapping, Record.RECORD_ID);
+ }
+
+ public AdvancedSolrDocumentConverter(final AnyMap mapping, final String idField) {
_mapping = mapping;
+ _idField = idField;
}
public SolrInputDocument convert(final Record record) {
@@ -39,7 +46,7 @@
}
private SolrInputDocument createDocumentWithMapping(final Record record) {
- final String id = record.getId();
+ final String id = record.getMetadata().getStringValue(_idField);
final SolrInputDocument document = newDocument(id);
for (final Entry<String, Any> mapping : _mapping.entrySet()) {
final String attributeOrAttachmentName = mapping.getKey();
@@ -52,7 +59,7 @@
private SolrInputDocument newDocument(final String id) {
final SolrInputDocument document = new SolrInputDocument();
- document.addField(Record.RECORD_ID, id);
+ document.addField(_idField, id);
return document;
}