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