問題タブ [rexster]
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.
java - 非常に基本的な OrientDB/TinkerPop プロパティ グラフ DB に関する質問
ばかげた質問の配列かもしれませんが、ご辛抱いただきありがとうございます。
私はレガシ エンタープライズ アプリケーションをゼロから再設計しており、基になるグラフ データベースとして OrientDB を選択しました。OrientDB の Google グループやさまざまな Wiki などを熟読した後、どのベスト プラクティスが適用され、どこから始めればよいかについて、少しばかり混乱したままです。すなわち:
- 1.6.4 (またはそれ以降) では、グラフ データベースを構築するために TinkerPop ブループリントを活用する必要があるという私の理解は正しいですか?
- その場合、Gremlin を使用する義務がありますか、それとも OrientDB が提供する拡張 SQL を引き続き使用できますか?
- 理想的には、TinkerPop API を介してプログラムで初期 (埋め込みではない) データベースを作成するか、OrientDB のネイティブ コンソールを介して構造を確立する必要がありますか?
- ブループリントの実装により、クラスターやクラスを使用できなくなりますか (OrientDB に組み込まれている継承構造を引き続き使用できますか)?
- 組み込みデータベースを使用しない場合、TinkerPop ベースの実装には Rexster が必須ですか?
- Cypher をサポートする Rexster キブルの風を聞いた人はいますか? :D
これまでの私の経験の大部分は、MS SQL と Neo4J に関するものでした (私の質問から示唆されているように)。
乾杯、
ジョン
titan - Rexpro を介して大規模な Titan グラフのすべての頂点を反復処理する
Python アプリケーションで Titan を使用しています ( RexPro & rexpro-python経由で接続しています)。グラフ内のすべての頂点を反復処理するいくつかの操作を実行したいと思いますが、これを行うための最良の方法は何だろうと思っています (賢明な方法さえあれば)。
頭に浮かぶ最初のアイデアは、 ij フィルターg.V
を介して のバッチをリクエストすることです。
ただし、フィルタは への頂点0
を読み込んで反復処理しi
ます。これは、大きなグラフでは法外なコストがかかります。
RexPro を介してすべての頂点を反復処理する最良の方法は何ですか?
tinkerpop - パス パラメーターを使用した Rexster 拡張機能
Rexster 拡張にパス パラメータを含める方法はありますか。つまり、Jersey と同等@PathParam
ですか?
サンプル拡張機能からわかることから、クエリ パラメータのみが利用可能であるように見えます。
groovy - Gremlin - プロパティを整数に変換しながらフィルタリングする方法は?
次のグレムリン コードのセグメントがあります。
これにより、time 属性値が startTime よりも大きいと判断されるアイテムが除外されると思います。しかし、そうではありません。比較するために、パイプライン内の現在のオブジェクトの時間を取得するにはどうすればよいですか?
groovy - 幅優先検索の実行中にGremlinにエッジを含める方法は?
私のgremlinクエリには、次のものがあります。
私のグレムリン スクリプトでは y を返しますが、y には明らかに頂点しかありません。頂点ごとにそれらを反復処理することで、手動で各エッジを手動で取得できますが、リスト y で返される他のノード間のエッジのみを含むリストを返す必要があります。
特に、データ構造内で返されたサブグラフをローカルで再作成できるようにする必要があるため、その情報を返すために gremlin が使用されています。これらのニーズに影響を与える私のユースケースに関するその他の詳細は、電球スクリプトを実行している rexster サーバーがネットワーク経由でデータをプッシュする必要があるため、各ノードエッジを手動で反復処理するのが遅すぎるという事実です。スクリプトを使用して最初に返された各頂点間のエッジのセットがない場合は、各エッジに沿って検出された各頂点をチェックして、最初に返されたセット内にあることを確認する必要があります。非常に理想的ではありません。
基本的に、結果は、返された頂点のいずれかを見たときに、返されたセット内でどの頂点がリンクされているかを知ることができるようなものでなければなりません。手動でのチェックやルックアップを行う必要はありません。単にデータセットにある必要があります。
編集1:
gremlin のツリー パイプライン機能は、私がやりたいことを正確に実行するのに非常に適していることがわかりました。問題は、ツリーを使用するようになったので、使用できる形式に戻す必要があることです...頂点またはエッジのいずれかしか返すことができないため、すぐにツリーを返すことはできません。
編集2:
espeedは正しいです。最初は bothE を使用する必要があります。しかし、いくつか満たしたい条件があります... 先ほどほぼ達成しましたが、フィルターを正しく機能させることができませんでした。
1 つのパイプラインで 2 つのバックを使用できない理由がわかりません (これで NullPointerException が発生します)。私が解決したい基本的な問題は、幅優先検索を実行し、上記のすべてを満たすノードのみを保存し、テストに合格したすべての頂点間のエッジを保存することです。