2

私はエッジラベルを持っています

ContainsAttribute持っているMultiplicity.SIMPLE

これらのエッジにはx、頂点中心のインデックスを作成したいプロパティがあります。

PropertyKey propertyX = mgmt.getPropertyKey("x");
EdgeLabel containsAttributeLabel = mgmt.makeEdgeLabel(EdgeLabels.ContainsAttribute).multiplicity(Multiplicity.SIMPLE).make();
mgmt.buildEdgeIndex(containsAttributeLabel,"propXIndex",Direction.IN, propertyX);

したがって、エッジは を表しEntity --containsAttribute --> Attributeます。私が作成しようとしているクエリは、 Property でフィルタリングすることにより、クエリを指定してエンティティを検索しようとしますx

なぜ私が言うことを許さないのだろうか:

The relation type [ContainsAttribute] has a multiplicity or cardinality constraint in direction [IN] and can therefore not be indexed

私のユースケースは理にかなっていると思います。それを機能させるために、エッジラベルの多重度をSIMPLEからMANY2ONEONE2MANYまたはに緩和したくありませんMULTI

編集: http://s3.thinkaurelius.com/docs/titan/1.0.0/indexes.htmlの例によると、ヘラクレスは多くのモンスターと戦ったため、「戦った」というラベルの付いたエッジは「ヘラクレス」から複数回出てきます。さまざまなモンスターと接続します。次に、エッジ インデックスは属性 'time' にあるため、フィルタリングを実行できます。私は似たようなことをしたいのですが、頂点中心のインデックスがその方法だと思いました..これらのエッジは、Hercules と各モンスターの間に「戦闘中」とラベル付けされたエッジが最大で 1 つあるため、Multiplicity.SIMPLE です。

編集2:

与えられた例に似た SIMPLE グラフ:

ここに画像の説明を入力

Hercules と、出て行く SIMPLE 'battled' エッジの頂点中心のインデックスを持つことは理にかなっていると思います。time >=20これにより、Hercules からモンスターにトラバースするときのクエリがより高速になります。

頂点中心のインデックスを活用するために、以下のような MULTI グラフ (それほど厳密ではない) が必要な理由がわかりません。

ここに画像の説明を入力

どんな助けでも大歓迎です!ありがとう!

4

0 に答える 0