有没有办法使用嵌入式api中的数组索引?除了embedded index tutorial中列出的内容之外,我找不到任何其他内容。我可以使用cypher中的索引。
作为参考,这不起作用。
val res = db.findNodesByLabelAndProperty(LNode,"etag","NP").iterator()
修改
好的直接1:1阵列比较工作。但我追求的是“数组中的值”语义。
编辑2:似乎无法通过旧版API搜索索引。难道我做错了什么 ? (见下面的评论)
val db_loc = "/usr/local/Cellar/neo4j/2.0.0/libexec/data/graph.db"
val inserter = BatchInserters.inserter(db_loc)
try {
val LNode = DynamicLabel.label("LNode")
val ELNode = DynamicLabel.label("ENode")
val SNode = DynamicLabel.label("sNode")
val ESNode = DynamicLabel.label("ESNode")
val SentenceL = DynamicLabel.label("Sentence")
val nodeToNode = DynamicRelationshipType.withName("nodeToNode")
val leafToNode = DynamicRelationshipType.withName("leafToNode")
// Lots of code to populate gigantic database
inserter.createDeferredSchemaIndex(LNode).on("etok").create()
inserter.createDeferredSchemaIndex(LNode).on("etag").create()
inserter.createDeferredSchemaIndex(ESNode).on("etok").create()
inserter.createDeferredSchemaIndex(ESNode).on("etag").create()
}
finally
inserter.shutdown()
EDIT3
我放弃了neo4j,无法索引数组是一个交易破坏者。在orientdb上。经过一段时间的阅读后,设计似乎要好得多,并且更好的文档。
edit4
Ok回到neo4j,OrientDB非常不成熟。文档和维基都写得很好,充实了。但API具有奇怪的无证语义,有很多极端情况。这通常没问题,但是例外很难理解,并且日志系统没有合理的日志来帮助完成这个过程。
Neo4j有一个更简单的架构和API,它可以在没有任何极端情况下工作,在嵌入模式下使用也更简单。我将深入挖掘并找到适合我的建模需求的方法。
答案 0 :(得分:1)