neo4j:如何同时使用start和match子句

时间:2014-10-09 06:23:06

标签: neo4j

我是neo4j的新手。

首先,我在neo4j.properties中启用节点自动索引和关系自动索引,并为节点添加属性键person_name,hotel_name。属性键inTime用于关系。 然后我创建了如下数据:

create (:Person {person_name:'p1'})
create (:Person {person_name:'p2'})
create (:Hotel {hotel_name:'h1'} )
create (:Hotel {hotel_name:'h2'} )

start p=node:node_auto_index('person_name:p1'),h=node:node_auto_index('hotel_name:h1')
create (p)-[:STAY_IN {inTime:'20140520'}]->(h)

start p=node:node_auto_index('person_name:p1'),h=node:node_auto_index('hotel_name:h2')
create (p)-[:STAY_IN {inTime:'20140522'}]->(h)

start p=node:node_auto_index('person_name:p2'),h=node:node_auto_index('hotel_name:h1')
create (p)-[:STAY_IN {inTime:'20140510'}]->(h)

现在,我想在20140501和20140530之间查询人p1 STAY_IN h1的结果:

但是密码返回所有数据:

start p=node:node_auto_index('person_name:p1'),
      r=relationship:relationship_auto_index('inTime:[20140501 TO 20140530]')  
      match (p)-[r]-(h) return p,r,h

它返回了p1和p2,我只希望p1返回。

任何人都可以帮助我吗?非常感谢你。

因为我真正的neo4j数据库中存在数据。很多节点和关系。所以我必须使用节点和关系索引来提高性能。

0 个答案:

没有答案