問題タブ [titan]
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.
gremlin - 複雑な gremlin-java クエリを作成する
以下に示す関係を使用して、タイタングラフデータベースにモデルを実装しました。
A
とB
は「主な頂点」(たとえばユーザー)、頂点B
とC
はユーザーに関連するいくつかのデータを記述する「重要度の低い頂点」です。
クエリ アルゴリズムの入力はid
、頂点のプロパティですA
。
上記の方法でD
接続されているすべての頂点を見つけたいです。さらにとの間の辺A
の性質を覚えておきたい。prop1
e1
A
B
より正確には、 が edge between のプロパティ(エッジにこのプロパティがある場合) であり、がfromのプロパティ(prop1, numberD)
であるペアを効率的に取得したいと考えています。prop1
A -> B
numberD
number
D
このクエリを効率的に実装する方法がわかりません。
頂点のみを取得するのは簡単ですD
( を使用GremlinPipes
):
しかし、エッジも取得e1
して頂点と一致させる必要がある場合に問題が発生しますD
。これらすべてのステップを個別に計算しようとしましたが、非常に非効率的です。
gremlin-java または gremlin-groovy を使用してこれを (おそらく複数のクエリを使用して) 実装する方法について何か提案はありますか? ありがとう!
cassandra - 基本的な Titan + Rexster + Cassandra を実際にセットアップするにはどうすればよいですか?
完全に基本的な Titan Rexster Cassandra インスタンスをセットアップしようとしていますが、コードを壊すことができないようです。私は今、それを機能させるために多くのことを試みましたが、機能させることができないようです。どれだけ読んでも、正しく設定できません。
私が欲しいのは、組み込みモードで実行されている Titan-rexster-cassandra インスタンスで、エラスティック検索を含むいくつかのインデックスがあります。私が読んだすべてのものの後、titan-server-0.4.0をダウンロードしてbin/titan.sh start
コマンドを実行すると、これが得られるはずです。これにより、サーバーも起動します。ただし、これにインデックスを追加しようとしても、何も起こりません。RexPro に入力しようとすると、何も追加されません。
サーバーを再起動すると、グラフが消えます。に移動すると、グラフの Rexster リストに表示されなくなりましたhttp://localhost:8182/graphs
。そのため、私のデータは持続しないか、少なくとも rexster では消えているようです。
これを機能させるために、ほぼすべてを試したように感じます。
.properties
次のように検索インデックスを含めるように変更します。storrage.index.search.backend=elasticsearch
...- 使用する
.properties
ファイル (すべて)cassandra
を変更するembeddedcassandra
cassandrathrift
storage.backend
- この質問に示されているように、特定の構成ファイルを指すように プロパティを使用してサーバーを起動しようとしています。
- ファイルを調べ
titan.sh
て実際に何が起こっているかを確認し、次にこれらによって示される構成ファイルに移動し、そこで何が起こっているかを確認しました。その上で、上記のような多くのことを試しました。
私はこれに1週間以上、おそらく2週間かそれ以上苦労しており、信仰を失い始めています. neo4j に戻すことを検討していますが、残念ながら Titan のスケーラビリティがどうしても必要です。しかし、私がそれを機能させることができなければ、それは無駄です。私が理解していない、または忘れていた、些細だが本質的なことがいくつかあるように感じます。
完全なゼロから (たとえば、新しい VM などを開始する)、またはそれに近い状態で、伸縮自在な検索インデックスで実行される titan-rexster-cassandra インスタンスを取得するためのガイドを知っている人はいますか? それとも、あなたが素晴らしいなら、そのようなガイドを提供しますか? 私は失われたと感じます :(
キーポイント:
Ubuntu 12.04 (13.10も試しました。同じ問題)
タイタン 0.4.0
目標:持続性を得るには、Elastic Search で頂点名プロパティにインデックスを付け、重みでエッジを取得します。
次のように ruby rexpro に接続します。
DBが持続しない問題を作成するために私が従う手順:
- WindowsAzure の場合: 新しい小さな (1 コア、1.75 GB RAM) VM
Ubuntu 12.04 LTS
を名前vmname
(または任意の名前) で作成します。 - 準備ができたら、SSH を使用してこの VM にログオンします (
ssh azureuser@vmname.cloudhost.net -p 22
) - 走る:
sudo apt-get update
- 走る:
sudo apt-get install openjdk-7-jdk openjdk-7-jre p7zip-full
- 走る:
mkdir /home/azureuser/Downloads
- 走る:
wget -O /home/azureuser/Downloads/titan-server-0.4.0.zip "http://s3.thinkaurelius.com/downloads/titan/titan-server-0.4.0.zip"
- 走る:
cd /home/azureuser/Downloads/
- 走る:
7z x titan-server-0.4.0.zip
- 走る:
cd /home/azureuser/Downloads/titan-server-0.4.0
- 走る:
sudo bin/titan.sh -c cassandra-es start
- 走る:
sudo bin/rexster-console.sh
- rexster コンソールで、次を実行
g = rexster.getGraph("graph")
します。titangraph[cassandra:null]
- CTRL-C で rexster consloe から
- 走る:
sudo bin/titan.sh stop
- 走る:
sudo bin/titan.sh -c cassandra-es start
- 走る:
sudo bin/rexster-console.sh
- rexster コンソールで、次を実行します
g = rexster.getGraph("graph")
。現在、これはグラフではなく null を返します。
シャットダウンして再起動するときに、いくつかの問題があるようです。
シャットダウン時
起動時 #2
neo4j - グラフ データベースのメモリの問題
Titan、OrientDB、およびNeo4jの 3 つの異なるグラフ データベースのベンチマークを試みています。データベース作成の実行時間を測定したい。テスト ケースとして、このデータセットhttp://snap.stanford.edu/data/web-flickr.htmlを使用します。データはローカルに保存されており、コンピューターのメモリには保存されていませんが、大量のメモリが消費され、残念ながらしばらくするとEclipseがクラッシュすることに気付きました。なぜこうなった?
ここにいくつかのコード スニペットがあります: Titan グラフの作成
OrientDB グラフの作成:
Neo4j グラフの作成:
編集: BatchGraph ソリューションを試しましたが、永久に実行されるようです。それは昨日一晩中実行され、最後にはなりませんでした。私はそれを止めなければなりませんでした。私のコードに何か問題がありますか?
gremlin - RexPro 経由で作成された Titan の HashMap を更新できません
Cassandra をデータ ストアとして Titan 0.3.2 を実行しています。また、RexProを介して Titan と対話するためにrexpro-pythonを使用しています。
問題と質問:
この Python コードを実行すると:
結果のノードを Gremlin コンソールで検索できます。
my_dict
マップが適切に作成されているように見えます。
my_dict
ただし、新しいキーと値で更新できません:
コンソールで最初に新しいオブジェクトにリセットmy_dict
すると、キーを追加しようとするabc
と期待どおりに機能します。
私の質問: my_dict
RexPro で作成された頂点で新しい KV ペアを更新するにはどうすればよいですか?
試行された回避策/解決策:
パラメータ化されていないバージョンの Python スクリプトを使用して頂点を作成すると、これと同じ問題が発生します。
また、この問題に関連するかどうかはわかりませんが、コンソールで作成された新しいマップはLinkedHashMap
(一方、python/rexpro コードは を作成しましたHashMap
) のようです:
titan - Titan-all gradle プルが失敗する
私は最新のタイタンを引っ張っています[Windowsとubuntuで]
次のエラーが表示されます。
助けてくれてありがとう。
elasticsearch - トークン化されたフィールド全体のTitan ES正規表現クエリ?
Titan 0.4.0 を実行してREGEX
おり、ES 文字列検索に最新の演算子を使用しようとしています。
my_key
という名前の ES インデックスのインデックスを作成しましたsearch
。
次に、頂点を追加します。
動作するREGEX
ようです...
...しかし、トークン化さ"123"
れ"abc"
た独立したもののみ:
ただし、完全な値に一致する正規表現を実行しようとすると、頂点が取得されません (以下のいずれも結果を返しません)。
Titan でこの方法でインデックスをクエリする方法はありますか (トークン化/分析された用語のない正規表現)?