简体   繁体   中英

how can i see the index and its nodes in Neo4j web admin i created in java application?

I am trying to access and persist data to my neo4j server, however despite the fact that both my code and server-properties.file shows the same database location, I can't see the results in webadmin interface.

Here is the code I wrote (as I created users earlier, the user creation code is not included):

package graph;

import java.util.Iterator;
import java.util.Random;

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 org.neo4j.graphdb.index.Index;

public class GraphTest {

    static GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase( "data/graph.db" );
    static Index<Node> nodeIndex = graphDb.index().forNodes("nodes");

    private static enum RelTypes implements RelationshipType
    {
        CALLED
    }

    public static void addRelationships(){
        int caller;
        int temp=0;
        int callee;
        Random rand = new Random();

        for(int i = 0 ;i<1000;i++){
            caller=rand.nextInt(100);
            temp=rand.nextInt(100);
            while(temp==caller)
                temp=rand.nextInt(100);
            callee=temp;


            String callerName = idToUserName( caller );
            Node foundCaller= nodeIndex.get( "uname", callerName ).getSingle();
            System.out.println( "The username of user " + caller + " is "
            + foundCaller.getProperty( "uname" ) );

            String calleeName = idToUserName( callee);
            Node foundCallee= nodeIndex.get( "uname", calleeName ).getSingle();
            System.out.println( "The username of user " + callee + " is "
            + foundCallee.getProperty( "uname" ) );


            System.out.println(callerName+" called " + calleeName);

            foundCaller.createRelationshipTo(foundCallee, RelTypes.CALLED);
            Iterable<Relationship> rels = foundCaller.getRelationships(RelTypes.CALLED, Direction.OUTGOING);
            Iterator<Relationship> x = rels.iterator();
            while(x.hasNext()){
                Relationship r = x.next();
                System.out.println(r.toString());
            }

        }

    }

    private static String idToUserName( final int id )
    {
        return "user" + String.valueOf(id) ;
    }

    private static Node createAndIndexUser( final String username )
    {
        Node node = graphDb.createNode();
        node.setProperty( "uname", username );
        nodeIndex.add( node,"uname", username );
        return node;
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Node firstNode;
        Node secondNode;
        Relationship relationship;

        System.out.println(nodeIndex.getName()+"  " +
nodeIndex.getGraphDatabase().getNodeById(45).getProperty("uname") );
        registerShutdownHook( graphDb );

        Transaction tx = graphDb.beginTx();
        try
        {
        // Updating operations go here
            // Create some users and index their names with the IndexService

            int idToFind = 67;
            String userName = idToUserName( idToFind );
            Node foundUser = nodeIndex.get( "uname", userName ).getSingle();
            System.out.println( "The username of user " + idToFind + " is "
            + foundUser.getProperty( "uname" ) );


            addRelationships();





            tx.success();

        }
        finally
        {
            tx.finish();

        }

        graphDb.shutdown();

    }

    private static void registerShutdownHook(final GraphDatabaseService graphDb) {
        // TODO Auto-generated method stub
        // Registers a shutdown hook for the Neo4j instance so that it
        // shuts down nicely when the VM exits (even if you "Ctrl-C" the
        // running application).
        Runtime.getRuntime().addShutdownHook( new Thread()
        {
        @Override
        public void run()
        {
        graphDb.shutdown();
        }
        } );

    }

}

And this is the content of conf/neo4j-server.properties file:

# location of the database directory 
org.neo4j.server.database.location=data/graph.db

When I try to write a query in webadmin interface (at http://localhost:7474/webadmin ) such as:

START n=node:nodes(uname="user45")
RETURN n

I get the error message: Index 'nodes' doesnt exist So how can I see it? Or what am I doing wrong?

Neo4j version: 1.9.3

Are you REALLY SURE that your code is running in the same working directory as your Neo4j Server? Maybe you can print out the path of the current working directory in your Java program?

在Web控制台上,您可以键入index --indexes以查看所有可用索引。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM