neo4j中的分层全文搜索

时间:2015-03-12 13:42:21

标签: search neo4j full-text-search cypher

我在neo4j中有父/子图:具有属性名称(字符串)的决定(父母,子决定列表)我将用于搜索。它通过查询完美地找到我的决定,其中包含搜索词:

START d=node:node_auto_index({autoIndexQuery}) MATCH (d:Decision) RETURN d

我想使这个查询复杂化,以找到名称中包含搜索词的决定,并且还在其子项名称中包含搜索词:

Name of relation is CONTAINS (Decision CONTAINS decisions)

1 个答案:

答案 0 :(得分:1)

我认为以下查询应该有效:

START parent=node:node_auto_index({autoIndexQuery}) 
WITH parent
START child=node:node_auto_index({autoIndexQuery}) 
MATCH (parent:Decision)-[:contains]->(child:Decision) 
where parent <> child
RETURN parent, child;

这里的一个问题是全文查询条件(我认为)只能在START块中进行。这意味着您需要以这种方式匹配父级和子级,然后将它们与MATCH连接起来。

这可能需要一些时间才能完成,具体取决于您匹配的节点数,因为查询将主要查看匹配的所有节点之间是否存在此父/子关系。但它应该完成工作。