問題タブ [neo4j]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
graph - Neo4j保存されたデータに対して最短経路計算を実行する
次のグラフデータをデータベースに保存したいのですが、
次に、WebサーブレットからDijskraアルゴリズムを実行して、保存されているグラフデータを使用して最短経路計算を見つけます。次に、サーブレットからhtmlファイルへのパスを出力します。
java - Neo4jOutOfMemoryの問題
これは私のMain.javaのソースコードです。これは、neo4j-apoc-1.0の例から取得したものです。2つのノードと1つのリレーションの1Mレコードを保存するための変更の目標:
数回繰り返した後(約150K)、エラーメッセージが表示されました。
"java.lang.OutOfMemoryError:java.nio.HeapByteBuffer。(HeapByteBuffer.java:39)のJavaヒープスペース、org.neo4j.kernel.impl.nioneoのjava.nio.ByteBuffer.allocate(ByteBuffer.java:312)。 store.PlainPersistenceWindow。(PlainPersistenceWindow.java:30)at org.neo4j.kernel.impl.nioneo.store.PersistenceWindowPool.allocateNewWindow(PersistenceWindowPool.java:534)at org.neo4j.kernel.impl.nioneo.store.PersistenceWindowPool.refreshBricks (PersistenceWindowPool.java:430)at org.neo4j.kernel.impl.nioneo.store.PersistenceWindowPool.acquire(PersistenceWindowPool.java:122)at org.neo4j.kernel.impl.nioneo.store.CommonAbstractStore.acquireWindow(CommonAbstractStore.java :459)org.neo4j.kernel.impl.nioneo.store.AbstractDynamicStore.updateRecord(AbstractDynamicStore.java:240)atorg.neo4j。kernel.impl.nioneo.store.PropertyStore.updateRecord(PropertyStore.java:209)at org.neo4j.kernel.impl.nioneo.xa.Command $ PropertyCommand.execute(Command.java:513)atorg.neo4j.kernel。 org.neo4j.kernel.impl.transaction.xaframework.XaTransaction.commit(XaTransaction.java:316)のimpl.nioneo.xa.NeoTransaction.doCommit(NeoTransaction.java:443) xaframework.XaResourceManager.commit(XaResourceManager.java:399)at org.neo4j.kernel.impl.transaction.xaframework.XaResourceHelpImpl.commit(XaResourceHelpImpl.java:64)at org.neo4j.kernel.impl.transaction.TransactionImpl.doCommit( TransactionImpl.java:514)at org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:571)at org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:543)at org 。neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:102)at org.neo4j.kernel.EmbeddedGraphDbImpl $ TransactionImpl.finish(EmbeddedGraphDbImpl.java:329)at javaapplication2.Main.main(Main.java:62) 28.05.2010 9:52:14 org.neo4j.kernel.impl.nioneo.store.PersistenceWindowPool logWarn警告:[neo4j-store-1M\neostore.propertystore.db.strings]直接バッファーを割り当てることができません。 "
彼ら!plzzzを手伝ってください、私が間違ったことを、どうすればそれを修復できますか?プラットフォームWindowsXP32ビットSP3でテスト済み。たぶん、カスタム構成の作成内の解決策ですか?
thnx 4すべてのアドバイス!
java - neo4j を使用して、特定のノードとの関係を持つノード セットを効率的に見つける方法
特定の 2 つのノードを使用して、(定義済みの関係を使用して) 共通ノードのセットを見つける効率的な方法はありますか。
たとえば、ノードA1
、B1
、C1
-C4
関係x
および で接続されたy
:
と の共通ノード セットはA1(x)
にB1(y)
なります[C2, C3]
。
database - グラフを永続ストレージに保存する最良の方法は何ですか
後で分析、検索、クラスタリングなどを行うために、永続ストレージにグラフを保存する最良の方法は何だろうと思っています。
私はneo4jがオプションだと思います.他のグラフデータベースも利用できるかどうか興味があります. 大規模なソーシャル ネットワークがグラフ ベースのデータ (または RDF などのグラフのようなモデルのストレージを必要とする他のサイト) をどのように保存するかについて、誰かが洞察を持っていますか?
Cassandra や MySQL などのオプションはどうですか?
database-design - データベース内の Web サイトを通るユーザー パスを表す方法は?
ユーザーが登録する前に、Web サイトのどのページにアクセスするかを調べるために、データベースにクエリを実行できるようにしたいと考えています。
グラフ データベース (おそらく neo4j) を使用することを計画していましたが、データをどのように表現するかを決めることができません。
各ユーザーは ID を持っており、それぞれが独自の ID を持つ複数の訪問を行うことができます。明らかに、各ページはその URL によって識別され、タイムスタンプによって、ページが訪問された順序を判断できます。
では、「登録につながる最も一般的なパスは何か」という質問に答えることができるように、データベースを設計するにはどうすればよいでしょうか? ユーザーが登録ページにたどり着く前に、5 つのページを訪問したことを知りたいです。
URL ごとにノードを作成することもできますが、そうすると、何百万ものユーザー ID、訪問 ID、およびタイムスタンプを URL ノードのプロパティとして持つことになります。
別の方法として、訪問ごとに 1 つのグラフを作成することもできますが、そうすると、登録ページを表す 1 つのノードから始めて、そこから戻ることができなくなります。代わりに、すべてのグラフを反復処理し、登録ノードが含まれている場合にのみスキャンする必要があります。
URL とユーザーをノードとして保存した場合、サイト内のパスをどのように表すことができますか? 「ユーザー A が URL 1 にアクセスした」と簡単に言うことはできますが、その後、URL 2 にアクセスしたことを直感的に表現することはできません。
私はここでかなり困惑しています。すべてのデータはすでにリレーショナル DB にありますが、このサイトには月に数百万回のアクセスがあるため、このようなクエリを実行するとかなりの時間がかかると思います。
どうすればこれにアプローチできますか?neo4j は適切なソリューションですか?
ありがとう
replication - neo4jデータをシャーディングして複製する方法はありますか?
私が取り組んでいるいくつかの新しいプロジェクトでは、neo4jのオプションを検討しています。与えられたデータのニーズ(本質的にグラフベース)に対して、neo4jはうまく適合し、迅速なプロトタイプは私に良い応答時間を与えています。私が理解したいのは、neo4jデプロイメントをスケーリングする方法です。具体的には:
- neo4jデプロイメント間でデータをシャーディングするにはどうすればよいですか?neo4jは1台のマシンにデプロイされているため、1台のマシンに保存できるデータの量には制限があり、その配布方法を知りたいと思います。明らかに、ユーザーで分割すると、(シャード全体で)切断されたユーザー間の関係を維持できなくなります。
- neo4jデータを複製するにはどうすればよいですか?潜在的なリーダーとライターの両方をスケールアップできるだけでなく、リアルタイムでデータのバックアップを作成できるように、書き込みに使用されるマスターと読み取りに使用されるスレーブを使用してsql-like-setupを作成することを考えています。私は、すべてのneo4jデータがファイルシステムに保存されていることを理解しています。これは本質的に複製できません。ここでそれを行う方法はありますか?おそらく、mysqlのbinログに似たものですか?
nosql - 知られている最大の Neo4j クラスターは何ですか?
既知の最大の Neo4j クラスター (データベース サイズ、グラフ統計、またはマシン数) は?
spring - Neo4j の Spring 構成設定
http://wiki.neo4j.org/content/Configuration_Settings#Optimizing_for_traversals_exampleから「neo4j_config.props」ファイルを統合したいと思い ます
に: neo4j spring app、app-config.xml で構成されている graphDbService:
詳細: Spring でのトラバーサル用に neo4j を最適化する http://www.mail-archive.com/user@lists.neo4j.org/msg04270.html
これを行う最良の方法は何ですか?PropertyPlaceholderConfigurer を使用するか、spring-util (PropertiesFactoryBean) を使用して使用してくださいありがとう
java - Neo4j BatchInsertedノードを作成してインデックスを作成した後、それらを使用するにはどうすればよいですか?
BatchInsertおよびLuceneIndexBatchInserterAPIを使用してグラフを作成しています(現時点では約10000ノード)。事はBatchInserter.createNode(...)がlongを返すことです。
ここで、propertiesはMap(String、Object)です。
私が本当に必要としているのは、Nodeタイプの新しいノードを取得することです。
このようにして、shortestPath apiを使用して、startNodeとtargetNodeを渡すことができます。
それで、基本的に、私がノードとしてインデックスからノードを取得することができ、長くはないという方法はありますか?
たぶん誰かがbatchInserterがNode型ではなくlong型のノードを返す理由を説明できたら?これが誰かにとって理にかなっていることを願っています、ありがとう。
java - constructor-arg フィールドを使用して Spring Bean を設定する
フィールドを使用して追加のコンストラクター引数として使用される Map を含むプロパティ ファイルを挿入するにはどうすればよいですか。
プロパティ ファイルからマップがロードされている場合
Bean は現在、以下を使用してセットアップされています。
同等のJava:
ありがとう