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
Partager