2011-12-14 10 views
0

私はwiki APIをhttp://docs.neo4j.org/chunked/snapshot/rest-api-traverse.html から読んで私のコードをチェックしています。私はTraversalsによって最短のn個のパスを見つけることができ、ノードまたはインデックスとの関係を見つけることができます。私のプロジェクトには300Mのノードがあり、Traversalsの最短経路を見つけたときに、retiationhipデータのプロパティ名に「hi」が含まれていますが、neo4jのfiterメソッドを使用していれば、それは本当に遅くなります。以下のような:neo4jは、トラバーサルによる最短n個のパスをインデックスで見つけることができますか?

{ 
     "order" : "breadth_first", 
     "return_filter" : { 
     "body" : "position.endNode().getProperty('name').toLowerCase().contains('t')", 
     "language" : "javascript" 
     }, 
     "prune_evaluator" : { 
     "body" : "position.length() > 10", 
     "language" : "javascript" 
     }, 
     "uniqueness" : "node_global", 
     "relationships" : [ { 
     "direction" : "all", 
     "type" : "knows" 
     }, { 
     "direction" : "all", 
     "type" : "loves" 
     } ], 
     "max_depth" : 3 
    } 

私が欲しい:

{ 
    "order" : "breadth_first", 
    "return_filter" : { 
    "body" : "position.endNode().name:*hi*", 
    "language" : "javascript" 
    }, 
    "prune_evaluator" : { 
    "body" : "position.length() > 10", 
    "language" : "javascript" 
    }, 
    "uniqueness" : "node_global", 
    "relationships" : [ { 
    "direction" : "all", 
    "type" : "knows" 
    }, { 
    "direction" : "all", 
    "type" : "loves" 
    } ], 
    "max_depth" : 3 
} 

誰かが私を助けることができますか?

答えて

0

最初は時間がかかっていますか、連続した要求が同じくらい遅いですか?プロパティは、そのノード/関係に対して最初にプロパティが要求されたときに、ノード/関係ごとにロードされ、そのパフォーマンスヒットが表示されている可能性があります。

インデックスを使用すると、まだロードされていないノードは役に立ちますが、それ以外のノードは役に立ちません。これをやりなおすことは、事前にインデックスルックアップを実行して、そのリストを評価者に渡す必要があるという点で、やりにくくなる可能性があります。しかし、それは拡大縮小しません。代わりに、この拡張子を書くことができますか?

+0

あなたの@ user211920に感謝します。その関係には長い文字列、長さが1000以上のような*大きなデータがあります。私はluceneによるインデックス付きの検索クエリを望みます。私はmemory.anyのすべてのデータをロードするので、私は気にしない最初の時間? – cjjer

+0

あなたはあなたのアプローチを回す必要があります、それらのノードでフルテキストインデックスを実行し、インデックスルックアップを介してそれらを見つけるし、正しい関係と年齢を持っている。 –

関連する問題