我正在尝试编写一个查询,根据共同的朋友和兴趣,在Neo4j数据库中查找潜在的朋友。
我不想发布整个查询(学校作业的一部分),但这是最重要的部分
MATCH (me:User {firstname: "Name"}), (me)-[:FRIEND]->(friend:User)<-[:FRIEND]-(potential:User), (me)-[:MEMBER]->(i:Interest)
WHERE NOT (potential)-[:FRIEND]->(me)
WITH COLLECT(DISTINCT potential) AS potential
Neo4j和塞弗古鲁,
我正在使用Neo4j、Elasticsearch和Spring Neo4j。我有相互关联的实体节点。在关系中有一个计数字段,它是两个实体之间关系的总数。我使用以下Cypher来恢复实体的前50位关系:
MATCH (e1:Entity)-[r1:RELATED_TO]-(e2:Entity)
WHERE e1.uuid = '<ENTITY_ID>'
RETURN e1,r1,e2
ORDER BY r1.count DESC
LIMIT 50
现在,我想要做的是为实体可视化一个基于时间的图表,为上个星期(上个月等)恢复前50位的关系。我不会
我有一个返回雇员列表的函数,我的要求是如果我给函数传递了Limit,那么我应该得到limit和offset的结果,如果我没有传递limit,那么应该返回所有的行
例如
When Limit is greater than 0(I am passing Limit as 10)
Select * from Employees
Limit 10 offset 0
When Limit is equal to 0 than
Select * from Employees
他们有没有办法在函数中做这样的逻辑?
我有一个包含用户、内容和主题节点的Neo4j数据库。我想要计算给定用户对给定主题所消耗的内容的比例。
MATCH (u:User)-[:CONSUMED]->(c:Content)<-[:CONTAINS]-(t:Topic)
WHERE ID(u) = 11158 AND ID(t) = 19853
MATCH (c1:Content)<-[:CONTAINS]-(z)
RETURN toFloat(COUNT(DISTINCT(c))) / toFloat(COUNT(DISTINCT(c1)))
有两件事让我觉得很丑:
首先,COUNT(DISTINCT())是否可
我有一个遗留的基于Tomcat/Jersey的应用程序,我们正在将其移植到Undertow/RestEasy,但我面临着REST调用的查询参数为空的问题。
示例资源类:
@Path("books")
class BookResource {
@QueryParam("start") int _start;
@QueryParam("limit") int _limit;
@Get
public List<Books> getBooks {
//implementation
}
}
我最近开始草拟一个涉及社交网络方面的个人项目。我对Neo4j有一些专业的经验,虽然感觉这是一个完美的匹配,但有一个疑问让我担心。
想象一下一个普通的社交网络:用户相互跟踪,用户发布帖子,用户可以看到他们所跟踪的用户所写的帖子。这在Neo4j中通过:User和:Post标记的节点清晰地表达出来,通过:posted和:follows关系连接。
这样,我就可以通过以下查询获得我所跟踪的用户的帖子:
MATCH (:User {user_id: 1})-[:follows]->(:User)-[:posted]->(p:Post)
RETURN p
这是相当干净和简单。我关心的是,实际上,
我希望从我的neo4j数据库中选择一个子图(S),并使用S上的另一个查询来查找两个给定节点是否连接。有没有一种在neo4j中编写查询的方法?我用的是node.js和Cypher。编辑:我正在做类似的事情,例如:
Match (u:User)-[:adds]->(y:Paper)-[:consistsOf]->(e:L2)-[]->(m:L3)
where u.username = 'test'
MATCH p=(m:L3)-[r:gives*1..4]->(n:L3)
...
谢谢
我是neo4j新手,遇到了一个非常奇怪的问题来限制特定父nodes.Please的子节点。请看一下我写的查询:
MATCH (l:Presentation_Layer)-[c:CONTAINS]-(o)
MATCH (l1:Business_Layer)-[r:CONTAINS]-(o1:Object)
MATCH (l2:Data_Layer)-[r2:CONTAINS]-(o2:Object)
WITH l,l1,l2,c,r,r2,o,o1,o2 LIMIT 100
OPTIONAL MATCH(l3:Layer)-[d:REFERENCES]-(l4:Layer)
RETURN *
我正在自学python,我正在尝试创建一个密码生成器。我想要程序做的是,生成一个随机密码并将其保存到文本文件中。我在获取密码以保存到文本文件方面有什么问题。我能够获得一个生成的密码,但是我在text_file file.write( output ) NameError中得到了一个错误代码:虽然我已经定义了输出,但没有定义名称'output‘。如果有人能告诉我我做错了什么,我会很感激的。如果需要更多的信息,请告诉我。谢谢
import random
import string
# Generates a password from random.choice
length = int
我试图在Neo4j上实现一个基本的推荐系统。基本上,我有用户和艺术家喜欢的用户。我想问一下“喜欢达米恩·赖斯,也喜欢这些艺术家的用户”。这很容易做到以下几点:
MATCH (n:Artist)<-[:LIKES]-(p:Person)-[:LIKES]->(n2:Artist {artist_name: "damien rice"})
RETURN n.artist_name, COUNT(n) AS COUNT
ORDER BY COUNT DESC
LIMIT 30
虽然这种方法是正确的,但它返回Coldplay,披头士乐队(每个人都很受欢迎的用户)如下:
n.
我正在尝试使用Neo4j实现一个推荐算法,这类似于在这个上的实现。
现在,我有一个简单的社交示例,在这个例子中,用户可以:
跟随另一个用户
玩游戏
live在一个国家
其思想是基于其他用户是否是朋友的朋友、玩相同的游戏、生活在同一个国家和/或跟踪所涉用户的基础上,制定一个朋友建议算法。
除了后者之外,使用上面页面中的示例很容易实现,如下所示:
MATCH (origin)-[r1:FOLLOWS|PLAYS|LIVES_IN]-(c)-[r2:FOLLOWS|PLAYS|LIVES_IN]-(candidate)
WHERE type(r1)=type(r2) AND NO
在neo4j浏览器中,当我单击“节点标签”下的*时,将返回所有标签类型的节点,并且当我单击任何节点时,我可以看到标签名称出现在顶部。但是,以下cypher查询不起作用。
MATCH (n:`Home`) RETURN n LIMIT 25
MATCH (n:Home) RETURN n LIMIT 25
我已经在neo4j.properties中启用了Cypher2.0属性。我是否需要更改任何其他设置?当我导出为JSON时,我会看到这些标签
我正在学习neo4j,我被要求通过评论找到与用户相关的最常见的业务类别。由于类别实际上并不存在于数据中,而且实际上只有一个业务,所以我使用了name。但我这样做并没有给我我想要的:
MATCH (u:User {name: "Willie"})-[:WROTE]-(:Review)-[:REVIEWS]-(b:Business)
RETURN b.name, count(b.name)
ORDER BY count(b.name)
LIMIT 1
看上去不对的事情:
:我是高效地使用计数(b.name)两次吗?(有没有一种方法来引用变量?我想确定这不是重新启动一个
我想从mysql表中选择100行随机行。这很容易。
SELECT * FROM table_name ORDER BY RAND() LIMIT 100, 1;
当用户单击一个按钮时,我希望看到接下来的100行随机行,而不是前100行中的任何一行。
SELECT * FROM table_name ORDER BY RAND() LIMIT 100, 101;
一遍又一遍。
SELECT * FROM table_name ORDER BY RAND() LIMIT 100, 201;
问题是,上面的查询选择重复。是否可以只选择以前未被选中的随机行?
我对Neo4j很陌生。是否可以在THEN查询中的CASE语句的CASE子句中执行操作?例如,如果当前处理的输出为null,则执行其他操作。下面是我想要做的事情的片段:
MATCH (order:PurchaseOrder)-[r:HAS_ITEM]->(a:sku) where a.id ='' and id(order) in OrderIDs
with order as commonorders
CASE WHEN commonorders is not NULL THEN
[MATCH (commonorders)-[r:
我有1.3亿个标签为Snp的节点。我希望将所有节点的属性position从string转换为int。我使用的是apoc版本为3.0.4.1的neo4j 3.0.4。
由于有大量的节点,这必须分批完成。为此,我尝试了apoc.periodic.rock_n_roll()过程
CALL apoc.periodic.rock_n_roll(
'MATCH (n:Snp) WITH n RETURN id(n) AS id_n',
'MATCH (n:Snp) where id(n)={id_n} SET n.position = toInt(n.positi
Neo4j有一个“连接结果节点”复选框选项,我收集到这个选项后,会在最初的查询之后运行第二个查询来连接节点。 例如 MATCH (n:User)
where n.Verified = 'false'
return n
order by n.followers DESC
Limit 40 该查询返回40个相互连接的节点。虽然这可以在Neo4j浏览器中工作,但我不能让它在Neo4j bloom中连接。那么问题是,在幕后连接结果节点的第二个查询是什么? 谢谢
这有什么问题吗?是的,我可以做一个if could语句,但是我想用case语句来做。
在我的控制器里
query_limit = case current_user
when nil
return 5
when is_admin?
return 200
when has_role?('registered')
return 20
else
有没有办法限制在CKQuery中返回的结果的数量?
在SQL中,可以运行类似SELECT * FROM Posts LIMIT 10,15的查询。是否有类似于查询的最后一部分,LIMIT 10,15 in CloudKit?
例如,我想加载前5个结果,然后,一旦用户滚动,我想加载下5个结果,依此类推。在SQL中,它将是LIMIT 0,5,然后是LIMIT 6,10,等等。
其中一件事是使用for循环,但是它非常密集,因为我必须从iCloud中选择所有的值,然后循环它们来确定要选择的5,而且我预计数据库中会有很多不同的帖子,所以我只想加载需要的那些。
我在找这样的东西:
var limit: N
我试图以编程方式定位Neo4j 1.8数据库中的所有重复节点(使用Neo4j 1.8)。需要检查的节点都有一个(非索引的)属性externalId,我希望为该属性查找副本。这是我得到的Cypher查询:
START n=node(*), dup=node(*) WHERE
HAS(n.externalId) AND HAS(dup.externalId) AND
n.externalId=dup.externalId AND
ID(n) < ID(dup)