IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NoSQL Discussion :

Neo4j et Inséretion des données à partir d'un fichier


Sujet :

NoSQL

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Neo4j et Inséretion des données à partir d'un fichier
    Bonjour,
    svp j'ai besoin d'aide. En fait j'ai un fichier log(format squid) à partir du quel je dois construire un graphe database (Neo4j) voici un morceau du fichier que j'ai
    1394950584.861;438;10.0.149.23;TCP_MISS/200;934;GET;http://dzayfdqe.trwvksnpc.au/lsetyum....230;text/html
    1394950629.431;580;10.0.149.23;TCP_MISS/200;922;GET;http://oacsyus.jxjsaz.tz/znvr.html;D...0.28;text/html
    1394950629.862;460;10.0.149.23;TCP_MISS/200;1860;GET;http://jfgmbt.pfkaa.cat/ogwblsah.htm...7.57;text/html
    1394951970.654;526;10.0.219.38;TCP_MISS/200;924;GET;http://jidce.offzu.py/ipgxs.html;DIR...9.76;text/html
    1394951970.789;103;10.0.219.38;TCP_MISS/200;796;GET;http://gamje.mxaqyljg.mq/ruobnuydt.h....239;text/html
    1394953981.407;360;10.0.93.19;TCP_MISS/200;1751;GET;http://kqrvhyhcb.evfhdcngf.io/bmivza....122;text/html
    1394953982.321;372;10.0.93.19;TCP_MISS/200;1125;GET;http://gzpz.gdxjamhb.je/jbgyafz.html....199;text/html
    1394953982.701;887;10.0.93.19;TCP_MISS/200;1087;GET;http://ixmvov.rhwxukd.fm/uqym.html;D....144;text/html
    1394953984.312;345;10.0.93.19;TCP_MISS/200;1634;GET;http://okbexuv.xyph.ax/wvsodmox.html...0.97;text/html
    je dois faire ceci:
    créer des noeuds pour chaque adresse Ip et des noeuds pour chaque page visitée par l'adresse Ip
    par exemple je dois créer une seule fois un noeud pour l'adresse IP 10.0.149.23 et 3 noeuds pour chaque page visité par cette adresse (lsetyumxs.html,znvr.html,ogwblsah.html) et vice versa càd si une page est visitée par plusieurs adresse Ip je dois pas le recréé
    voici mon premier code:
    import java.io.BufferedReader;
    import java.io.FileReader;
    import org.neo4j.graphdb.Direction;
    import org.neo4j.graphdb.GraphDatabaseService;
    import org.neo4j.graphdb.Node;
    import org.neo4j.graphdb.Relationship;
    import org.neo4j.graphdb.RelationshipType;
    import org.neo4j.graphdb.Transaction;
    import org.neo4j.graphdb.factory.GraphDatabaseFactory;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import java.util.regex.PatternSyntaxException;

    public class FR1 {
    private static final String DB_Path="C:\\Users/neo4j-community-2.0.1-windows/neo4j-community-2.0.1/data";


    String myString;
    static GraphDatabaseService Graph1;
    static Node ClientIpp;
    static Node PageVisitée;
    static Relationship myRelationshipp;


    void createDb()
    {
    Graph1 = new GraphDatabaseFactory().newEmbeddedDatabase(DB_Path);}

    private static enum RelTypes implements RelationshipType
    {
    regarde
    }
    public static void main(String[] args) throws Exception {
    FR blabla=new FR();
    blabla.createDb();
    FileReader file= new FileReader("c:/exemple.txt");
    BufferedReader reader= new BufferedReader(file);
    String ligne;
    String myString ;
    String[] splitArray=null;
    while ((ligne = reader.readLine()) != null)
    {

    splitArray=ligne.split("[;:///]");
    for(int i = 0; i< splitArray.length;i++){
    // On affiche chaque élément du tableau
    System.out.println("élement n° " + i + "=[" + splitArray[i]+"]");

    }
    Transaction tx = Graph1.beginTx();
    try
    {
    ClientIpp = Graph1.createNode();
    ClientIpp.setProperty( "name" , splitArray[2] );

    PageVisitée = Graph1.createNode();
    PageVisitée.setProperty( "name", splitArray[11]);
    myRelationshipp = ClientIpp.createRelationshipTo( PageVisitée, RelTypes.regarde);
    myRelationshipp.setProperty( "relationship-type", "regarde");

    myString = (ClientIpp.getProperty("name").toString())+" "+( myRelationshipp.getProperty("relationship-type").toString()) + " "+(PageVisitée.getProperty( "name").toString() );
    System.out.println(myString);

    tx.success();
    }
    finally
    {

    tx.finish();
    }


    }
    reader.close();}}
    mais le problème ici c que à chaque il crée le noeuds meme s'il existe et meme chose pour la page.
    svp aidez moi et Merci

  2. #2
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    Salut,

    Je pense que tu aurais pu poursuivre sur l'autre topic vu qu'il semble s'agir du même sujet

    Justement dans l'autre topic je t'avais donné le lien vers un billet de blog que j'ai écrit il y a juste 2 semaines. J'utilise Cypher pour éviter d'insérer des doublons. Je n'ai pas réussi avec l'API Java.
    Je ne suis pas expert sur Neo4j donc je ne pourrais pas aller plus loin que ce que je mets sur le billet :

    http://www.eventuallycoding.com/inde...f-2nd-journee/

    a+

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Bonjour,
    Svp vous pouvez me dire comment utiliser des réquetes cypher dans un programme Java (dans mon exemple)
    Merci

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    bonjour Hugo123
    merci pour votre réponse mais svp vous pouvez me dire comment des requétes cypher dans un code Java

Discussions similaires

  1. [Débutante] Extraire des données à partir d'un fichier html avec xsl
    Par sab_etudianteBTS dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 11/03/2008, 09h10
  2. Réponses: 1
    Dernier message: 21/09/2007, 12h10
  3. extraire des données à partir d'un fichier texte
    Par bigplayer dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2007, 21h33
  4. récuperer des données à partir d'un fichier écrit en HTML
    Par moabomotal dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 01/11/2006, 19h50
  5. Réponses: 8
    Dernier message: 22/08/2006, 12h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo