Neo4j 查询已经创建的索引与约束


在Neo4j 2.0之后为cypher语法增加了一些类似于DDL的语法,能够自己创建索引,约束等等。

有如下的方法可以查询到当前图数据库的索引数量:

neo4j-shell 

  • 使用:index –indexes列出所有Legacy Index(关于Legacy Index的介绍)
  • 使用:schema列出所有label的索引以及约束
  • 使用:schema ls -l :YourLabel列出指定标签的索引与约束

neo4j-browser

  • 使用::schema 列出所有标签的所有记录
  • 使用::schema ls -l :YourLabel列出指定标签的索引与约束

大多数APIs都支持使用CQL查询,以下提供两种查询方案

  • Native Java API
public static void main(String[] args) {
        GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(new File("D:\\neo4j\\HelloWorld3"));
        Transaction beginTx = graphDb.beginTx();
        System.out.println("constraint:" + graphDb.schema().getConstraints(DynamicLabel.label("Test")));
        System.out.println("index:" + graphDb.schema().getIndexes(DynamicLabel.label("Test")));
        beginTx.success();
    }

  • REST calls (这个方法尝试过,行不通)
    • /db/data/schema/ endpoints for label based schema
    • and to /db/data/index/node/ and /db/data/index/relationship/ for legacy indices

以上文内容翻译自stackoverflow:

http://stackoverflow.com/questions/19801599/neo4j-is-there-a-cypher-query-syntax-to-list-show-all-indexes-in-db

图片部分是已经试验可以使用

教程结束,感谢阅读。

欢迎转载,但请注明本文链接,谢谢。

 2016-03-30   20:41:44