2016-07-28 38 views
0

在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 

回答

2

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

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

你可以使用一个第二,共同的称谓:普通名词和专有名词都是名词,那么为什么不使用NOUN标签为大家,与像PROPNCOMMN附加标签,专门它们。

  1. 标记所有(当前)名词的普通名词:

    MATCH (n:NOUN) SET n:COMMN 
    
  2. 标记全部专有名词为名词:

    MATCH (n:PROPN) SET n:NOUN 
    
  3. 您所查询的是那么简单:

    MATCH (n:NOUN)-[r]->(n1:NOUN) return r 
    
+0

这绝对是一个好主意 –