如何获取count函数返回的列的名称
这是问题所在
cypherquery='START n=node:node_auto_index(name='Ashish') MATCH n-[:f]-h RETURN h,count(h)'
Run Code Online (Sandbox Code Playgroud)
第一列名称肯定'h'但是第二列的名称呢?
为了记录,我使用的是Neo4j 2.0.0-M02.
我目前有一种方法可以在其用户ID上搜索标签为"User"的节点,该用户ID作为节点属性"id"存储在图中.这一切都发生在事务中,因为它会自动关闭ResourceIterator.
现在,我想在两个用户之间创建一个关系.我只拥有他们的用户ID.现在,我显然希望重用按其ID搜索用户的方法.我有三种方法可以想到.
第一个是显而易见的.使用现有方法检索两个节点.比调用创建它们之间关系的方法.显然这也发生在一个事务中,所以这需要三个事务.效率不高.
第二个是在创建关系的新方法中重用代码(而不是方法).这样,我可以在一个事务中完成所有操作,但我复制的代码对于开发人员来说并不是一个很好的实践.
第三个是在创建关系的新方法的事务内调用现有方法两次.这样我的代码仍然可以重用,但我不确定嵌套事务在Neo4J中是如何工作的.是否会忽略现有方法的交易,因为已有现有交易?这将解决我的问题.
如果没有,我必须重新考虑我管理交易的地方.我知道在服务中管理它们通常比在DAO中更好,但我想将Neo4j的东西从我的服务类中保留下来.
如何选择连接到具有多个路径的节点(2)[from]的所有节点?
START from=node(2)
MATCH p=from-->to
where count(p) > 1
return from,to
Run Code Online (Sandbox Code Playgroud)
致Neo4J团队:是否计划实施Count/Having功能?到目前为止,产品的出色表现!
我正在使用Neo4j 1.9.RC2,我用WITH测试ORDER BY.我想要做的是生成动态排名并将当前排序索引存储到每个排序的节点中.
我有类似的东西:parent- [r:has_child] - > rank_node我想做的事情如下:
start n=node(1)
match n-[r:has_child]->rank_node
with rank_node
order by rank_node.score
set rank_node.position = "CURRENT ORDER BY INDEX"
Run Code Online (Sandbox Code Playgroud)
我想要一个从0增加到"n"的计数器......我无法做到这一点......
这里CURRENT ORDER BY INDEX就像每个节点按顺序返回的当前索引.
我不知道是否有可能用cyper做到这一点?这将是非常有用的,因为我们可以进行大排序并直接插入节点中的位置以便以后直接获取它...
我想在neo4j 2.0上创建一些索引,但我无法理解这里有什么问题.从一个新的数据库开始,我的输入命令看起来像
CREATE INDEX ON :user(name);
CREATE INDEX ON :root(root);
CREATE INDEX ON :origin(origin);
CREATE INDEX ON :gender(gender);
create (n1:root {root : 'root'}),(n2:gender {gender : 'female'}),(n3:gender {gender : 'male'}),(n4:origin {origin : 'english (modern)' }),(n5:origin {origin : 'finnish' }),(n6:user {name : 'aaliyah'}),(n7:user {name : 'aapeli'}),(n8:user {name : 'aapo'});
Run Code Online (Sandbox Code Playgroud)
此时一切看起来都很好(请参阅下面的输出)但是当我尝试使用索引时出现错误:
neo4j-sh (0)$ start n=node:user(name="aapo") return n;
MissingIndexException: Index `user` does not exist
Run Code Online (Sandbox Code Playgroud)
知道为什么会这样吗?请注意,在索引之前创建节点不会更改任何内容.
提前致谢
输出我的第一个命令:
neo4j-sh (0)$ CREATE INDEX ON :user(name);
+-------------------+
| No data returned. |
+-------------------+
Indexes added: 1
235 …Run Code Online (Sandbox Code Playgroud) 给出一个图表,其中有类型用户和社会身份的节点,以及类型的关系知道和has_social_id,如下所示:
User A has_social_id FB1
has_social_id Another
User B has_social_id FB2
User A knows User B
Run Code Online (Sandbox Code Playgroud)
Foreach用户实体仅存储电子邮件,布尔属性和2个日期属性,对于socialid实体,仅存储整数属性和日期属性,并且每个用户平均拥有100个朋友和1.1社交身份.
你认为社区版可以处理大约80000个用户,每个用户有大约100个朋友,性能合理而不需要集群只增加一台机器的容量吗?
我正在使用neo4j构建一个大型图形数据库.
我有自己的外部索引,它为我提供了用于进一步neo4j图遍历的相关节点的标识符.换句话说,当我查询数据库时,我已经拥有了我的起始节点ID.
我的问题是:如果我使用neo4j/lucene索引访问相关节点,节点查找会更快吗?
或者是查询,例如:
START n=node({ids})
Run Code Online (Sandbox Code Playgroud)
已针对节点访问进行了优化,使用以下方法无法获得:
START n=node:nodeIndexName(key={value})
Run Code Online (Sandbox Code Playgroud)
?
谢谢,
I'm migrating to Neo4j 1.9 and updating the cypher queries according to the deprecations migration guide, specifically:
The ! property operator in Cypher Expressions like node.property! = "value" have been deprecated, please use has(node.property) AND node.property = "value" instead.
The problem is that when using the HAS clause in combination with NOT I can't get the expected result. For example:
When the status property exists and is set to something other than "DONE":
AND not(n.status! = "DONE")
Run Code Online (Sandbox Code Playgroud)
evaluates true (as …
我试图通过webadmin控制台删除不再需要的大约40,000个节点,但我收到以下消息:
neo4j-sh (0)$ start n=node:node_auto_index(tipo="not_needed") DELETE n;
==> TransactionFailureException: Unable to commit transaction
Run Code Online (Sandbox Code Playgroud)
有人知道使用控制台是否有办法解决这个问题?
我已经安装了jruby并试图将Neo4j用于我的Rails应用程序.但是输入bundle install会给我带来以下冲突.
Bundler找不到gem"railties"的兼容版本:在Gemfile中:neo4j(> = 2.2.3)java依赖于栏目(<3.3,> = 3.0.0)java
rails(= 4.0.0)java取决于railties(4.0.0)
这是我的gemfile:
source 'https://rubygems.org'
gem 'rails', '4.0.0'
gem 'sass-rails'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails'
gem 'therubyrhino'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 1.2'
group :doc do
gem 'sdoc', require: false
end
gem 'bcrypt-ruby', '~> 3.0.0'
gem 'unicorn'
gem 'capistrano', group: :development
group :development, :test do
gem "rspec-rails"
end
gem "neo4j", ">= 2.2.3"
Run Code Online (Sandbox Code Playgroud)
我应该删除我的Gemfile.lock并运行bundle update吗?谢谢!