密码中的详细OR条件

时间:2016-07-28 13:49:03

标签: neo4j nlp cypher

在neo4j中,我想获取与某种关系相关的所有名词或专有名词。我有这样的查询

match (n)-[r]->(n1) where n:NOUN and n1:NOUN or n:NOUN and n1:PROPN or n:PROPN and n1:NOUN or n1:PROPN and n:PROPN return r

有更紧凑的东西吗?像:

match (n:[NOUN, PROPN])-[r]->(n1:[NOUN, PROPN]) return r

1 个答案:

答案 0 :(得分:2)

节点标签没有这样的语法,它只适用于关系类型。

相反,为什么不改进你的模型?

您可以使用第二个常用标签:常用名词和专有名词都是名词,所以为什么不为每个人使用NOUN标签,使用PROPN或{{{{}}等附加标签对其进行专门化处理1}}。

  1. 将所有(当前)名词标记为常用名词:

    COMMN
  2. 将所有专有名词标记为名词:

    MATCH (n:NOUN) SET n:COMMN
    
  3. 您的查询就是:

    MATCH (n:PROPN) SET n:NOUN