diff --git a/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/search/FieldValueTypeCache.java b/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/search/FieldValueTypeCache.java
index 45c519e..2aafad4 100644
--- a/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/search/FieldValueTypeCache.java
+++ b/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/search/FieldValueTypeCache.java
@@ -27,14 +27,21 @@
  */
 public class FieldValueTypeCache {
 
-  final SolrSchemaService _solr;
+  private static final long EXPIRE_AFTER_MINUTES_DEFAULT = 60;
+
+  final SolrSchemaService _schemaService;
 
   LoadingCache<String, ValueType> _cache = null;
 
   final Splitter _splitter = Splitter.on("/");
 
-  public FieldValueTypeCache(final SolrSchemaService solr, final long exprireAfterMinutes) {
-    _solr = solr;
+  public FieldValueTypeCache(final SolrSchemaService schemaService) {
+    this(schemaService, EXPIRE_AFTER_MINUTES_DEFAULT);
+  }
+
+  public FieldValueTypeCache(final SolrSchemaService schemaService, Long exprireAfterMinutes) {
+    _schemaService = schemaService;
+    exprireAfterMinutes = exprireAfterMinutes != null ? exprireAfterMinutes : EXPIRE_AFTER_MINUTES_DEFAULT;
     // builder cache
     _cache =
       CacheBuilder.newBuilder().expireAfterWrite(exprireAfterMinutes, TimeUnit.MINUTES)
@@ -65,7 +72,8 @@
 
   private String getTypeFromSchema(final String client, final String index, final String field)
     throws SolrServiceException {
-    final Record fieldInfo = _solr.getField(client, index, field, new KeyValueParam("includeDynamic", true));
+    final Record fieldInfo =
+      _schemaService.getField(client, index, field, new KeyValueParam("includeDynamic", true));
     return MetadataUtils.getValue(fieldInfo.getMetadata(), Mode.FAIL, "fields", "1", "type").asString();
   }
 
