2017-04-03 11 views
0

は、ここで私はファミリーツリーでのNeo4jに取り組んでいますText ViewのNeo4jは

だ人の名前でノードを返しません。特定の名前のノードを返すように頼むと、ルートノード以外のノードでは動作しません。例を参照してください。

MATCH (n:FamilyTree {name: 'Sam'}) RETURN n 

サムがルートノードで、neo4jがそのノードを返します。

しかし、私はこの1つのようないくつかの他のノードを返すしようとすると:それは任意のものを返さない

MATCH (n:FamilyTree {name: 'Sumiko Shackleford'}) RETURN n 

を。このノードは自分のグラフに存在します。 誰か助けてくれますか?

これは、import文です:

LOAD CSV WITH HEADERS FROM "file:///FamilyTree.csv" AS row 

    CREATE (:FamilyTree { ssn: row.SSN, name: row.Name, gender: row.Gender, 
    status: row.Status, age: row.Age}) 

私は、SQLサーバーに同じデータをインポートして、私は「E」 のようないくつかの奇妙な文字がのNeo4jからそのようなことを除去するための直接的な方法はありましたか?

私はこのクエリを歌うSQLサーバーからそれを削除:

UPDATE familyTreeTest.dbo.FamilyTree 
SET Name = REPLACE(Name,'Ê', '') 
+0

返されるノードについての詳細情報を提供する必要があります。そのラベルは何ですか、あなたはその名前のプロパティを調べることができますか?別のラベルになっている可能性があります。名前のプロパティーキーまたは値にスペースがあると、一致しない可能性があります。 – InverseFalcon

+0

私が使用しているラベルは、Cypher Queryに示されているように名前です。私はそのスペルを確認し、すべてが問題ありません。キーはここで見ることができるように中央の 'Sumiko Shackleford'にスペースがありますが、これは問題ではないと思います。私は、ルートノード名のフォーム 'Sam'を 'Test test'に変更し、問題なく返します。 – ABD

+0

「Sumiko Shackleford」ノードを返すクエリを作成し、ノードのテキスト結果ビューをコピーして貼り付けることができれば、これは行またはグラフの結果ビューに表示されないものを表示する可能性があります。これとは別に、これが何かを返すことができるかどうかを確認するための良い正気チェック: 'MATCH(n:FamilyTree)WHERE n。名前はここから始まる – InverseFalcon

答えて

0

あなたが追加したテキスト結果の画像を見たときに、問題がクリアされています。名前を見ると、末尾にスペースがあるので、スペースがないためにマッチが失敗します。

これは、このノードまたは他のノードでは発生しないように、データをクリーンアップする必要があります。あなたはこのようにそれをクリーンアップすることができます

MATCH (n:FamilyTree) 
SET n.name = trim(n.name) 

EDITの文字が存在しているものは何でも同じよう

が見える、彼らはスペース、タブ、または改行が、空白文字としてレンダリングするいくつかの他の文字はありません。

これをクリーンアップする最も速い方法は、入力したCSVファイルをクリーンアップしてすべてのデータを再度インポートする方法を見つけることです。

+0

私はそれをしても、同じ問題を抱えています。 – ABD

+0

Sumikoのノードのテキスト結果の2つの新しいスクリーンショットを追加できますか? 1つは動作していないクエリ用で、もう1つは動作中のクエリ用です(STARTS WITHクエリ)。 – InverseFalcon

+0

これはあなたの答えに添付されています。 – ABD