diff --git a/pom.xml b/pom.xml
index 025ecf7..e127b7b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -118,6 +118,36 @@
 	  <target>1.7</target>
 	</configuration>
       </plugin>
+
+      <!--
+	  install the indexer
+	  $ mvn clean compile assembly:single
+	  Then run e.g.
+	  $ java -jar target/KorAP-lucene-index-0.20-jar-with-dependencies.jar src/test/resources/wiki/
+
+      -->
+      <plugin>
+	<artifactId>maven-assembly-plugin</artifactId>
+	<configuration>
+	  <archive>
+	    <manifest>
+	      <mainClass>de.ids_mannheim.korap.KorapIndexer</mainClass>
+	    </manifest>
+	  </archive>
+	  <descriptorRefs>
+	    <descriptorRef>jar-with-dependencies</descriptorRef>
+	  </descriptorRefs>
+	</configuration>
+	<executions>
+	  <execution>
+	    <id>make-assembly</id>
+	    <phase>package</phase>
+	    <goals>
+	      <goal>single</goal>
+	    </goals>
+	  </execution>
+	</executions>
+      </plugin>
 <!--
       <plugin>
         <artifactId>maven-surefire-plugin</artifactId>
diff --git a/src/main/java/de/ids_mannheim/korap/KorapIndex.java b/src/main/java/de/ids_mannheim/korap/KorapIndex.java
index 62bb1f2..58d90ca 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapIndex.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapIndex.java
@@ -115,7 +115,6 @@
 	this(FSDirectory.open(new File( index )));
     };
 
-
     public KorapIndex (Directory directory) throws IOException {
 	this.directory = directory;
 
diff --git a/src/main/java/de/ids_mannheim/korap/KorapIndexer.java b/src/main/java/de/ids_mannheim/korap/KorapIndexer.java
new file mode 100644
index 0000000..d6361fe
--- /dev/null
+++ b/src/main/java/de/ids_mannheim/korap/KorapIndexer.java
@@ -0,0 +1,55 @@
+package de.ids_mannheim.korap;
+import java.util.*;
+import java.io.*;
+import org.apache.lucene.store.MMapDirectory;
+import de.ids_mannheim.korap.KorapIndex;
+
+public class KorapIndexer {
+    KorapIndex index;
+    int count;
+
+    public KorapIndexer () throws IOException {
+	this.index = new KorapIndex(new MMapDirectory(new File("target/test/")));
+	this.count = 0;
+    };
+
+    public void parse (File dir) {
+	for (String file : dir.list()) {
+	    if (file.matches("^[^\\.].+?\\.json\\.gz$")) {
+		String found = dir.getPath() + '/' + file;
+		System.out.print("  Index " + found + " ... ");
+		try {
+		    this.index.addDocFile(found, true);
+		}
+		catch (IOException e) {
+		    System.out.println("fail.");
+		    continue;
+		};
+		System.out.println("done.");
+		this.count++;
+	    };
+	};
+    };
+
+    public static void main(String[] args) throws IOException {
+
+	KorapIndexer ki = new KorapIndexer();
+
+	System.out.println();
+
+	for (String arg : args) {
+	    File f = new File( arg );
+	    if (f.isDirectory()) {
+		ki.parse(f);
+	    };
+	};
+
+	System.out.println("-----");
+	System.out.print("  Commit ... ");
+	ki.index.commit();
+	System.out.println("done.");
+	System.out.println("-----");
+	System.out.println("  Indexed " + ki.count + " files.");
+	System.out.println();
+    };
+};
\ No newline at end of file
