2016-09-04 2 views
0

各ノードがNeo4jの階層配置を表すNeo4jにCSVベースの分類法をロードしました。換言すれば、各ノードは、それが階層のサブセットであるかスーパーセットであるかに基づいて、parent_ofおよびchild_of関係を有する。Neo4jの分類法またはテキスト表現を生成クエリ結果

例分類:

Ambiguous, Moon 
Aerospace and electronic systems 
Aerospace and electronic systems, Moon 
Aerospace and electronic systems, Aerospace engineering, Satellites, Moon, Man on the Moon 

例ノード: "月" がchild_of "あいまい" と "あいまい" がparent_ofである

Moon 
Ambiguous 

"月" 等

今度はDB内の特定のノードを検索し、検索結果に基づいてその分類学的階層を再作成したいと思います。

だから最初、私はCYPHERクエリ実行:

MATCH (n)-[:PARENT_TO*]->(m) where m.term = "Man on the Moon" RETURN n,m; 

をし、次のように得た:

enter image description here

enter image description here

私の質問/問題は次のとおりです。

テーブルバージョンは、 「n」および「m」マッピングを含む。私は、用語の間の深さのレベルを推測することはできません - 私は階層を再作成することはできません。

したがって、検索結果とクエリ結果を使用してマルチレベル階層を再生成するにはどうすればよいですか?

答えて

2

あなたは、ノード間のパス全体を返すことができます。

MATCH path = (n)-[:PARENT_TO*]->(m) where m.term = "Man on the Moon" 
RETURN nodes(path) 
+0

は、それが応答の最後の行は、完全なパスであることを常にそうですか? (回答ありがとうbtw!) – Sean

+0

また、私は答えを受け入れましたが、まだ問題があります。結果はどのグループが完全なパスであるかを明確には示していないので、結果からタクソノミーを再作成することはできません。または私はできますか? – Sean

+1

@Sean「分類法を再作成する」とはどういう意味ですか?あなたは得たいものの例を挙げることができますか? –

関連する問題