Neo4j.rb和node_auto_index存在问题

时间:2013-09-22 11:00:51

标签: ruby-on-rails ruby neo4j cypher

我的neo4j rails项目遇到了一些问题。我试图让查询工作,但我一直得到Index 'node_auto_index' does not exist。如果您运行的是单独的neo4j服务器,我发现this link似乎可以解决这个问题。但是我不是,我正在使用neo4j.rb gem来修复所有这些,所以在任何地方都没有neo4j.properties文件。

我虽然在config/application.rb中镜像了neo4j.properties,但是当我尝试config.neo4j.node_auto_indexing = true时,它没有帮助。

我正在尝试的密码查询是这样完成的:

@q = Neo4j._query("CYPHER 1.9 START n=node:node_auto_index('name:*{query}*') 
                  MATCH (n)-[r:CONNECTED*0..6]-(tag) 
                  RETURN reduce(sum = 1, ni IN r: sum * ni.price) LIMIT 6", 'query' => params[:query])
#I have tried with and without the "CYPHER 1.9" part.

我该如何解决这个问题?是否有一种简单的方式来做同样的请求?请注意reduce的使用,这很重要。

有没有办法让node_auto_index在Neo4j.rb中运行?

任何帮助都会受到很大关注!


版本:

  • jRuby 1.7.4
  • gem' rails',' 3.2.14'
  • gem' neo4j',' 2.3.0-java'

1 个答案:

答案 0 :(得分:0)

您必须先初始化自动索引,然后才能进行查询。如果您的数据库不是太大,请尝试运行:

start n=node(*) 
set n.name=n.name;

此外,我注意到您将reduce中的价格相乘 - 看起来您正在计算总和,因此您可能希望使用+运算符。