# Neo4J Graphen-Datenbank HTML-Dokument importieren



## Phil_88 (30. Nov 2016)

Hallo, ich bin neu hier und habe auch gleich eine Frage mit der Hoffnung, dass sie mir jemand beantworten kann.

Ich programmiere mit Eclipse und möchte ein Programm schreiben, welche die Relationen verschiedener Wikipedia-Artikel zueinander darstellt. Dazu muss ich die Graphen-Datenbank Neo4J nutzen. Was ich bisher gemacht habe:

Ich habe die RelationshipTypes definiert
das Datenbankverzeichnis deklariert und in Schemata mit Labels eingeteilt
Nun möchte ich, dass das Programm die Knoten importiert, welche als "Artikel" & "Kategorie" gelabelt wurden. Dazu gibt es eine .txt welche mit UTF-8 die Wikipedia-Artikel im HTML-Format beinhaltet.

Kann mir jemand weiterhelfen, mit welchem Befehl ich die Datei (500MB) in die DB importiere und auch dabei in die Properties (ArticleID, NamespaceID, Title, Content) einteile?

Danke schonmal im Voraus: Folgend noch der JAVA-Code:


```
package neo4JDemo;
import org.neo4j.graphdb.*;
import org.neo4j.graphdb.factory.*;
import org.neo4j.io.fs.FileUtils;
import java.io.File;
import java.util.Iterator;


public class Neo4j_test {
             
                // Gibt die möglichen Relationen an
                public enum RelTypes implements RelationshipType {KategorizedIn, LinkedWith};
             
                public static void main(String[] args) {
                               // TODO Auto-generated method stub
                            
                               GraphDatabaseService db = null;
                               try {
                                               /** WikiXtractor reset <DB-Directory> */
                                               // Deklariert das Datenbankverzeichnis
                                               File dbDir = new File ("db");
                                               // Löscht die alte Datenbank falls eine existiert
                                               if (dbDir.exists()) FileUtils.deleteRecursively(dbDir);
                                               // Erstellt bzw. öffnet erneut die Datenbank
                                               db = new GraphDatabaseFactory().newEmbeddedDatabase(dbDir);
                                            
                                               // Erste Transaktion --> erstellt zwei unterschiedlich gelabelte Schematas mit "Titel" und "Kategorie"
                                               try (Transaction tx = db.beginTx()){
                                                               db.schema().indexFor(Label.label("Artikel")).on("name").create();
                                                               db.schema().indexFor(Label.label("Kategorie")).on("name").create();
                                                               tx.success();
                                               }
                                            
                                               /** Hier kommt der Importbefehl für alle Artikel*/
                                               /** Mit den Properties "ArticleID", "NamespaceID", "Title", "HTML-Content" */
                                               try (Transaction tx = db.beginTx()){
                                                            
                                               }
                                            
                                            
                                               /** Testausgabe */
                                               System.out.println();
                                            
                               }
                            
                               catch (Exception e) {
                                               e.printStackTrace();
                               }
                            
                               finally {
                                               if (db != null) db.shutdown();
                               }
             
                }
}
```


----------

