Neo4j Embedded - 自动索引多个属性

时间:2013-05-15 14:57:54

标签: neo4j

我打开了节点自动索引,它正在索引我需要的属性。如果我启动Neo4j服务器并打开webadmin,我会看到根据this帖子有一个名为node_auto_index的索引。它可以从webadmin完美运行,我可以像这样运行Cypher查询:

START n=node:node_auto_index('__type:user AND __username:admin') RETURN n

查询完全返回我的期望。但是,如果我从Scala应用程序关闭服务器并以嵌入模式打开数据库,则不起作用。如果我尝试运行相同的Cypher查询,则会收到node_auto_index不存在的错误。我检查了GraphDatabaseService属性,并在右键上启动并运行自动索引,但是当获取所有索引名称的列表时,列表始终为空。我不能使用AutoIndex API,因为它只对一个属性进行索引,我绝对需要两者。

从这一点来看,使用Scala(Java)代码中的多个属性查询自动索引的最佳方法是什么?

编辑:我注意到ReadableIndex接口(自动索引就是这个)可以接受查询字符串。我找不到很多关于它的文档,所以我将尝试一些事情,但是有没有机会可以接受Cypher查询?或者只是我上面查询中的单引号字符串?

1 个答案:

答案 0 :(得分:0)

事实证明,ReadableIndex的query函数实际需要Lucene Query,我现在意识到这是我上面引用的内容。所以调用这段代码:

val nodes = db.index.getNodeAutoIndexer.getAutoIndex.query("__type:user AND __username:admin")

给了我我想要的东西。