我添加了具有“nodetype”属性的节点,并且只想查询某种类型的节点。例如,我有一个“场地”节点类型,它是世界各地场地的列表。每个场地都有一个 :IN_REGION 将其链接到一个城市,然后有一个 :IN_REGION 一直到国家。所以:
venue-[:IN_REGION]->city-[:IN_REGION]->province-[:IN_REGION]->country
我正在对场地进行模糊搜索,需要搜索上述任何内容并返回一个字符串,并将所有上述内容连接起来。我想在 Neo4j 而不是后端服务器上执行此操作。在此运行的理想查询是什么?我有以下内容:
START venue=node(*)
WHERE venue.nodetype! ='venue'
WITH venue
MATCH p = address<-[:HAS_ADDRESS]-venue-[r1:IN_REGION]->city-[r2?:IN_REGION]->prov-[r3?:IN_REGION]->country
with venue.name+','+address.streetAddress+','+city.name+','+prov.name+','+country.name as toSearch
WHERE toSearch=~ ".*QUERY_STRING.*"
return toSearch
LIMIT 30
其中 QUERY_STRING 是模糊搜索字符串。我主要想知道节点(*)并在最后进行查询 - 这是否会梳理每个节点?此外,一些关系是可选的并返回 null - 我该如何处理?
任何帮助是极大的赞赏!