问题标签 [cypher]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
neo4j - 使用带有空列表的 head 函数时如何获取空值
我有一个像这样的密码查询。
名为“way”的关系是可选的,因此当关系“way”不存在时,名为“consumeTime”的属性将是一个空列表。
查询结果为:
| 0 | “JGS” | [] |
| 1 | 《深圳》 | [3600] |
当我想使用属性“consumeTime”的头函数时,它返回错误“无效查询:空列表头”。
我怎样才能得到这样的结果?
| 0 | “JGS” | 空 |
| 1 | 《深圳》 | 3600 |
python - 用于 Neo4j 的 Python 绑定中的密码查询,在 WHERE 子句中使用算术运算
在 python binding v 1.6 中对我的 neo4j 数据库运行以下 Cypher 查询时遇到问题:
我的数据库有带有索引属性的节点label
以及与整数属性的关系year
。执行此查询时,出现错误
我已经在这个查询中玩过括号但没有成功。谁能帮我解决这个错误?
编辑:我认为问题出在使用 neo4j 嵌入式版本 1.6,但我将它升级到版本 1.9.dev0(从 github 编译),但我仍然得到同样的错误。
Edit2:感谢 ulkas 的评论,我发现了交互式密码控制台并在那里创建了一个示例图和密码查询(但没有索引部分)。查询有问题:
Edit3:在玩过控制台之后,我发现它不允许根据文档提供的无向关系和菱形图案匹配。这就是我在控制台http://console.neo4j.org/?id=oqspkc中工作的内容。此查询在 Python 中失败,并显示相同的错误消息 ( Unclosed parenthesis
)。我还能在 neo4j 中匹配菱形图案吗?python绑定有什么问题?
neo4j - Neo4j Cypher 查询返回不同的节点集
我有一个简单的社交网络图数据库模型。用户可以关注其他用户并发布帖子。我正在尝试获取用户发布的所有帖子以及用户关注的任何人发布的所有帖子的列表
它返回两者的叉积,即 b 中所有值与 d 中所有值的元组。(bxd) 我想要一个直接的帖子列表。我该怎么做呢?我需要做两个单独的查询吗?
python - Neo4j - Cypher 读写返回查询
我对 neo4j 还很陌生。我玩过 cypher 和 REST API。我希望能够沿着某个路径创建一个叶节点,考虑这些节点是某些类型的事件。在运行时我不知道此事件将附加到的节点的 ID。我需要进行查找,然后获取节点的 id,然后创建我的新节点。
因此,在运行时,我希望我可以使用 cypher 进行 MATCH 以获取我可以将事件附加到的节点并创建新节点以及 MATCH 返回的现有节点的关系。所以我遇到了密码备忘单,它有一个读写返回查询,我认为这很合适。但是文档中没有太多提及它,或者我可能不是超级谷歌!
有人可以告诉我这(读写返回)是否是正确/有效的方法?
非常感谢!
java - 在来自 Java 的 Cypher 查询中指定参数
我正在使用来自 Java 的嵌入式 Neo4j 数据库。给定一个属性值对(例如,('id','29384234'),我想使用 Cypher 找到相应的唯一节点。我查看了Neo4j 文档中的一些示例,但所有示例都假设一些静态 id 或键值对来标识起始节点。Cypher Java API 描述了该execute(String query,Map<String,Object> params)
方法,但没有给出任何示例。
查询中如何引用参数值?
或者,在给定唯一标识节点的(属性名称,值)对的情况下,是否有更好的方法来获取单个节点?
neo4j - Neo4j 索引和遗留数据
我有一个想要查询的旧数据集(以 GraphML 表示的ENRON 数据)。在相关问题的评论中, @StefanArmbruster建议我使用 Cypher 来查询数据库。我的查询用例很简单:给定消息 id(Message 节点的属性),检索具有该 id 的节点,并检索该消息的发送者和接收者节点。
似乎要在 Cypher 中执行此操作,我首先必须创建节点的索引。当从 graphML 文件加载数据时,有没有办法自动执行此操作?(我曾使用 Gremlin 加载数据并创建数据库。)
我还有一个数据的外部 Lucene 索引(我需要它用于其他目的)。有两个索引有意义吗?例如,我可以将 Neo4J 节点 ID 索引到我的外部索引中,然后根据这些 ID 查询图形。我担心的是这些 id 的持久性。(以此类推,不应将 Lucene 文档 ID 视为持久性。)
那么,我应该:
在内部索引 Neo4j 图以使用 Cypher 查询消息 ID?(如果是这样,最好的方法是什么:用一些合适的咒语重新生成数据库以建立索引?在已经存在的数据库上建立索引?)
将 Neo4j 节点 ID 存储在我的外部 Lucene 索引中并通过这些存储的 ID 检索节点?
更新
我一直在尝试让自动索引与 Gremlin 和嵌入式服务器一起工作,但没有运气。在文档中它说
底层数据库是自动索引的,请参阅第 14.12 节,“自动索引”,因此脚本可以通过索引查找返回导入的节点。
但是当我在加载新数据库后检查图表时,似乎不存在任何索引。
Neo4j 关于自动索引的文档说需要进行大量配置。除了设置之外node_auto_indexing = true
,您还必须对其进行配置
要真正自动索引某些东西,您必须设置应该索引哪些属性。您可以通过列出要索引的属性键来做到这一点。在配置文件中,使用 node_keys_indexable 和 relationship_keys_indexable 配置键。使用嵌入模式时,请使用 GraphDatabaseSettings.node_keys_indexable 和 GraphDatabaseSettings.relationship_keys_indexable 配置键。在所有情况下,该值都应该是要索引的属性键的逗号分隔列表。
那么 Gremlin 应该设置GraphDatabaseSettings
参数吗?我尝试将地图传递给 Neo4jGraph 构造函数,如下所示:
但这对索引创建没有明显影响。
更新 2
我没有通过 Gremlin 配置数据库,而是使用Neo4j 文档中给出的示例,这样我的数据库创建就像这样(在 Groovy 中):
我的检索是这样完成的:
这似乎奏效了。但是请注意,getIndices()
对Neo4jGraph
对象的调用仍然返回一个空列表。所以结果是我可以正确地使用 Neo4j API,但是 Gremlin 包装器似乎无法反映索引状态。表达式g.idx('node_auto_index')
(记录在Gremlin Methods中)返回 null。
rest - Neo4j REST Cypher 和参数:什么可以是通过 REST 进行的 Cypher 查询中的参数
我正在尝试使用参数使这个查询工作但没有运气。我总是遇到同样的错误。
然后,我删除了{start}
参数,并在关系中使用了一个 backtip (`),它就像一个魅力。
那么,使用参数的正确方法是什么,我可以在查询中的哪里使用它们?
以防万一,backtip{start}
也不起作用。下一个请求也不起作用。
我正在使用 1.9M01
neo4j - Neo4j Cypher:仅当端节点存在时才创建关系
对于以下 Cypher 语句:
在某些情况下,g 可能为 null(即不存在具有 id groupId 的组)。在这种情况下,我应该怎么做才能使这个语句仍然创建单元,但跳过与 g 的 has_group 关系?现在,unit 没有被创建,大概是因为 g 为空。
我正在使用 Neo4j Advanced 1.8
谢谢!
neo4j - 如何在 CypherFluentQuery 中使用 NodeReferences?
我一直在试验 Neo4J,文本查询工作得很好。然后我切换到 .Net 中的 Neo4JClient,现在我想使用 CypherFluentQuery,但由于某些非常奇怪的原因,生成的查询不包括节点 ID,而只包括像 {p0}、p{1} 这样的占位符...... ) 我错过了什么?
下面是我的简单查询示例:
文本查询(工作正常):
现在是 CypherFluentQuery(抛出异常):
引用的节点类如下:
抛出异常:
更新 我用 nugget 更新了 Neo4JClient,现在显然我不能使用 ExecuteGetCypherResults,所以我想我现在的问题比以往任何时候都更有效:-/
neo4j - 支持 neo4j 中的“最受欢迎”查询
如果我想在 neo 4j 中进行“最喜欢”的文章查询,其中“喜欢”是用户和文章之间的关系,最好的方法是:
- 在文章本身中保留一个 totalLikes 计数属性,并在密码查询中对该属性进行排序?每当有人喜欢一篇文章时,该属性就会更新。
或者
- 为每篇文章保留一个带有 totalLikes 的索引。每次喜欢文章时,我都必须删除并重新添加索引条目。
我想我在文档中读到查询不能按总关系计数排序。