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:
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:
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
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:
Java:
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();
}
}
}