Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 带逻辑运算符的密码查询_Neo4j_Cypher - Fatal编程技术网

Neo4j 带逻辑运算符的密码查询

Neo4j 带逻辑运算符的密码查询,neo4j,cypher,Neo4j,Cypher,作为上一篇文章的后续,我想知道在执行索引查询时如何使用逻辑运算符AND、OR和NOT 使用相同的book club数据库场景,Cypher查询会是什么样子: 查找所有阅读过(小说和非小说)或参考书的读者 查找所有阅读过(小说类或非小说类)而没有参考书的读者 我非常确信这两个例子应该提供足够的材料来涵盖任何其他场景 编辑:我创建了一个场景来演示这一点 对于您的第一个用例,您可以尝试一下。第二步可以在类似的线路上完成- start b1=node:MyBookIndex('Genre:Fiction

作为上一篇文章的后续,我想知道在执行索引查询时如何使用逻辑运算符AND、OR和NOT

使用相同的book club数据库场景,Cypher查询会是什么样子:

  • 查找所有阅读过(小说非小说)或参考书的读者
  • 查找所有阅读过(小说类非小说类)而没有参考书的读者
  • 我非常确信这两个例子应该提供足够的材料来涵盖任何其他场景


    编辑:我创建了一个场景来演示这一点

    对于您的第一个用例,您可以尝试一下。第二步可以在类似的线路上完成-

    start b1=node:MyBookIndex('Genre:Fiction'), 
          b2=node:MyBookIndex('Genre:Non-Fiction'),
          b3=node:MyBookIndex('Genre:Reference')
    match b1-[a?:HasRead]-r,
          b2-[b?:HasRead]-r,
          b3-[c?:HasRead]-r
    where (a <> null and b <> null) or (c <> null)
    return r.ReaderName
    
    start b1=node:MyBookIndex('流派:小说'),
    b2=节点:MyBookIndex(‘流派:非小说’),
    b3=节点:MyBookIndex('流派:引用')
    匹配b1-[a?:HasRead]-r,
    b2-[b?:HasRead]-r,
    b3-[c?:HasRead]-r
    其中(a null和b null)或(c null)
    返回r.ReaderName
    

    (注意:未测试)

    这不起作用,因为我使用Neo4j Web管理控制台的数据浏览器选项卡执行查询时得到以下信息:>无效查询>目前不支持此模式。这些模式元素是多个双可选路径的一部分,这是不允许的。r1,F,r2注意,在我之前的评论中提到的
    “r1,F,r2”
    来自使用我的数据的测试。使用@Gopi回复中的示例,您将看到
    “a,r,b”