标签: neo4j

`for`里面`for`循环内的语句不会同时运行

我正在尝试使用clojure和neocons库将数据从StackOverflow导入Neo4j.请原谅我是一个新手.

这是我在Leiningen的主要功能:

(defn -main
  [& args]

  (let [neo4j-conn  (nr/connect "http://localhost:7777/db/data/")]

    (cypher/tquery neo4j-conn "MATCH n OPTIONAL MATCH n-[r]-() DELETE n, r")

    (for [page (range 1 6)]
      (let [data (parse-string (stackoverflow-get-questions page))
            questions (data "items")
            has-more (data "has_more")
            question-ids (map #(%1 "question_id") questions)
            answers ((parse-string (stackoverflow-get-answers question-ids)) "items")]
        (map #(import-question %1 neo4j-conn) questions)
        (map #(import-answer %1 neo4j-conn) answers)
      )
    )
  )
)
Run Code Online (Sandbox Code Playgroud)

我已经定义import-questionimport-answer功能,这些工作独立.事实上,奇怪的是我可以删除其中任何一条import-*线,而另一条线条可以正常工作.

任何人都可以看到我做的事情是不是很简单?

clojure neo4j

0
推荐指数
1
解决办法
89
查看次数

Neo4j:关系方向密码

对于密码 -

match (m)-[r]-(n) where m.name = 'XYZ' return n.name, type(r), m.name

n.name      type(r)         m.name
XYZ         belongs_to      Ordering Status
XYZ         runs_on_queue   inbound
XYZ         runs_on_db      DBxc
Run Code Online (Sandbox Code Playgroud)

在这种情况下,订购状态是"拥有"XYZ的业务服务,关系定义如下:

CREATE (XYZ)-[:belongs_to]->(Order)
Run Code Online (Sandbox Code Playgroud)

类型(r)仅给出关系,但不给出关系的方向.这仍然是获得方向的最佳方式 - 我还注意到有关Cypher不可用的评论

Neo4j Cypher得到关系方向

谢谢.

relationship neo4j cypher

0
推荐指数
1
解决办法
539
查看次数

如何在py2neo中获取neo4j图中的所有连接节点

有没有办法用py2neo来获取图中所有连接的节点.通过关系连接的所有节点?

neo4j cypher py2neo

0
推荐指数
1
解决办法
448
查看次数

使用neo4j休息http客户端的性能问题

用Apache http客户端替换neo4j-jdbc客户端之后挣扎.

似乎在运行仅执行查询的1k个并发用户时仍然存在问题.

这就是我们使用客户端的方式:https: //gist.github.com/IdanFridman/1989b600a0a032329a5e

这是我们使用该rest-client执行查询的方式:

https://gist.github.com/IdanFridman/22637f95ba696f498b6c

在分析后,我们看到上面的糟糕表现结果:

在此输入图像描述

每个请求的avg延迟为3秒.

我们应该抛弃neo4j吗?我们对表演结果感到绝望

谢谢.

connection performance neo4j cypher apache-httpclient-4.x

0
推荐指数
1
解决办法
365
查看次数

Spring-data-neo4j映射不能转换为nodeentity

我使用Spring-data-neo4j但遇到以下问题.

一切正常,直到我想将查询的LinkedHashMap强制转换为@NodeEntity.这是代码

Movie.class

@NodeEntity
public class Movie {
@GraphId Long id;

@Property(name="title")
private String mtitle;

@Property(name="released")
private String mreleased;

@Property(name="tagline")
private String mtagline;

@Relationship(type = "REVIEWED", direction = Relationship.INCOMING)
private Set<Movie> reviewed;

@Relationship(type = "ACTED_IN", direction = Relationship.INCOMING)
private Set<Movie> actedIn;

@Relationship(type = "DIRECTED", direction = Relationship.INCOMING)
private Set<Movie> directed;
}
Run Code Online (Sandbox Code Playgroud)

他们存储库

@Repository
public interface MovieRepository extends GraphRepository<Movie>{
    @Query("MATCH (n) WHERE id(n)={0} RETURN n")
    Movie getMovieFromId(Integer idOfMovie);
}
Run Code Online (Sandbox Code Playgroud)

getMovieFromId()在服务中使用时,我得到例外:

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.hersbitcloud.cancercloud.domain.Movie
com.sun.proxy.$Proxy55.getMovieFromId(Unknown Source)
com.hersbitcloud.cancercloud.services.GLService.getGL(GLService.java:24) …
Run Code Online (Sandbox Code Playgroud)

neo4j spring-data-neo4j-4

0
推荐指数
1
解决办法
475
查看次数

neo4j-php-client中的错误处理程序

我下载并安装了neo4j-php-client和neo4j 2.3.2.实际上一切正常,但我只是想知道为什么这个php客户端没有错误处理程序?例如,如果cypher查询中存在错误,则没有错误抛出很容易捕获它.我通过网络搜索,但我找不到解决方案.

有人知道如何打开错误处理程序吗?

提前致谢.

php neo4j graphaware

0
推荐指数
1
解决办法
373
查看次数

neo4j cypher在Where子句中左边填充字符串

我的节点中有一个String属性,其中String的长度没有修复.现在我必须通过此属性搜索正确的节点,但我从另一个系统获得固定长度值.例如,我的节点的值为'0123',但我获取了信息'000123'进行搜索.

我需要一个像Zeros左边填充的函数,这个在Where子句中

MATCH(a:LABEL)其中leftPad(a.property,6,'0')='000123'返回LIMIT 1

这样的事情可以通过良好的表现吗?

neo4j cypher

0
推荐指数
1
解决办法
434
查看次数

Neo4j:拆分字符串并获取位置

我需要将字段拆分为不同的值,并将每个值存储在不同的节点中。对于每个创建的节点,我要存储位置。例:

Sentence             Words
My car is red        My;car;is;red
Run Code Online (Sandbox Code Playgroud)

使用方法:

FOREACH (w IN SPLIT(line.TWords, ";") |
 MERGE (wd:Word {word: w})
Run Code Online (Sandbox Code Playgroud)

我可以拆分字段并存储不同的单词,但我想存储关系中的位置。

My car is red  -[HAS_WORD {position:1}]-> My
My car is red  -[HAS_WORD {position:2}]-> car
My car is red  -[HAS_WORD {position:3}]-> is
My car is red  -[HAS_WORD {position:4}]-> red
Run Code Online (Sandbox Code Playgroud)

我怎么能得到这个?

USING PERIODIC COMMIT LOAD CSV WITH HEADERS  FROM 'file:///output_2016-05-06_0203_Neo4jImport.csv' AS line FIELDTERMINATOR "\t"

MERGE (s:Segment{text: line.Source})
MERGE (ta:Segment{text: line.Target})

WITH SPLIT(line.SWords, ";") AS SWords, line, s, ta
UNWIND RANGE(0, SIZE(SWords)-1) …
Run Code Online (Sandbox Code Playgroud)

foreach split neo4j cypher

0
推荐指数
1
解决办法
3829
查看次数

在为大约30 TB数据选择Graph DB时要考虑哪些因素

我正在开发一个软件系统(Graph Database)来研究多个组件之间的互连.最终可能会有大约30 TB的数据.我想知道在选择正确的数据库时需要考虑的因素.

我正在寻找的一些选项是Apache Giraph,TitanDB.我也想知道像neo4j或OrientDB这样规模较小的数据库本身是否可行

graph neo4j titan giraph

0
推荐指数
1
解决办法
263
查看次数

在单个查询中更新多个节点,每个节点具有不同的属性/值对

迈克尔·亨格在2013年初回答了类似的问题,但我无法将他对Neo4j/Cypher 3.x的回应翻译出来.

https://groups.google.com/forum/#!msg/neo4j/qZWhbMtMCTE/r3W7OZfCgAgJ

每个节点都具有UUID值的属性.在某些情况下,"second"属性是布尔值,在其他情况下是字符串.

我想更新其中一些节点,更改或添加属性到每个节点.

(n1 {uuid:"foo1", enabled: true})
(n2 {uuid:"foo2", example: "foo"})
(n3 {uuid:"foo3"})
Run Code Online (Sandbox Code Playgroud)

我当然可以为每个创建一个单独的MERGE和SET语句,但我希望有一个更优雅的解决方案:

MATCH (S {uuid:"foo0"})
MERGE (n2 {uuid:"foo2"})-[:BELONGS_TO]->(S)
    SET n2.example="bar"
MERGE (n3 {uuid:"foo3"})-[:BELONGS_TO]->(S)
    SET n3.enabled=true
Run Code Online (Sandbox Code Playgroud)

neo4j cypher

0
推荐指数
1
解决办法
692
查看次数