私は主なデータベースとしてNeo4jを使用して小さなWebアプリケーションを構築しています。私のすべてのノード(〜700,000)は、共通のプロパティ、例えばname
を持っています。私はJava(Jax-rs)を使ってNeo4jサーバーのためのアンマネージド拡張をビルドしました。Neo4jにアルファベット順に並べられたノード名のリストはどのように保存するのですか?
私がしたいのは、name
がいくつかのパターンに一致するノードをすばやく取得できるようにすることです。私はすべてのノード(既にソートされている)のリストを保存するほうが簡単だと考えましたが、私の問題はどうすればいいのですか? WebAppの場合、これは関連性のあるNode.jsとReact(Reduxアーキテクチャ)を使用しています。
まず第一に、私は私のNeo4jの管理対象外の拡張子を使用する必要があり、かつ
は、他のすべてのノードのリストに等しいプロパティを持つノードを作成し、そのノードのプロパティ
に基づいて、私の計算を行うのいずれか
アンマネージド拡張を使用してサーバー上のファイルにアクセスし、そのファイルを読み書きして必要なものを取得します。 Nその場合は、私がのNeo4jのAPIを使用することはありませんが、私は他の可能性はMongoDBのような他のデータベースを使用してノードから、このいずれかに接続することです
を実行している他のデータベースを持っている必要はないでしょう。 js。また、Node.jsから直接ファイルを読み書きすることもできます。
これは私が今考えることのできるオプションです。私は十分明確であることを望みます。ベストプラクティスは何でしょうか?あなたの助けのための
おかげで、要求ごととして
どのようなパターンですか? 'name'プロパティにインデックスを付けることができます。これにより、不等式、開始点、メンバシップチェックなど、多くの種類のパターンに一致するノードをすばやく見つけることができます。 –
私は、ストレージ自体をソートする必要があるのは混乱しています(これを達成するには、コンテンツ間にリレーションシップツリーを構築する必要があります)。 Cypherでは、データを照会して結果を並べ替えることができます。また、私はneo4jデータにアクセスするための第一歩として、なぜ2番目のデータベース(ここではmongodb)を使用することを考えているのか分かりません。これはソートに関連していますか?あなたが何を求めているのかは分かりません。あなたの質問を編集して実行しようとしているクエリのタイプを示したら、それは意味をなさないでしょう。 –
@ToreEschlimanインデックス作成について考えましたが、このような種類のパターンマッチングを簡単に実行できることを知らなかったので、ありがとうございました。私が構築したいのは一種のリアルタイムプロセスであり、マッチング全体が速くなければなりません...私のアプリが成長すれば、このメソッドのパフォーマンスに問題はありますか? –