26.7.1 一時プロパティの管理
グラフ・サーバー(PGX)は、プロパティ・グラフ・データ・モデルを採用しています。グラフがPGXにロードされると、グラフ・インスタンス自体とその元のプロパティは不変として設定されます。ただし、クライアントでは、追加のプロパティを動的に作成してグラフにアタッチできます。これらの追加プロパティは一時プロパティと呼ばれ、クライアントで変更可能です
PgxGraph
には、一時プロパティを作成するための次のメソッドがあります。
VertexProperty<ID, V> createVertexPropertyAsync(PropertyType type)
VertexProperty<ID, V> createVertexPropertyAsync(PropertyType type, String name)
EdgeProperty<V> createEdgePropertyAsync(PropertyType type)
EdgeProperty<V> createEdgePropertyAsync(PropertyType type, String name)
前述のコードで:
PropertyType
: プロパティのデータ型のenum
であり、PGXでサポートされているプリミティブ型のいずれかである必要があります。name
: 新しく作成されるプロパティに一意の名前を割り当てるオプションの引数です。名前を指定しない場合は、PGXによってクライアントに割り当てられます。ノート:
名前は一意である必要があります。同じグラフについて同じ名前の2つの異なる頂点またはエッジ・プロパティが存在することはできません。
create_vertex_property(self,data_type,name=None)
メソッドはすべて、新しく作成された一時プロパティを表すProperty
オブジェクトを返します。基礎となるクラスVertexProperty<ID, V>
とEdgeProperty<V>
はどちらも、プロパティで保持される値タイプV
でパラメータ化されます。V
は、指定されたPropertyType
と一致します。VertexProperty<ID, V>
は、さらに頂点IDタイプでパラメータ化されます。これは、複数の型の頂点識別子のPGXサポートによるものです。グラフの頂点IDタイプを指定する方法は、グラフ構成の章を参照してください。PGXでは型long
のエッジ識別子のみがサポートされているため、EdgeProperty<V>
はエッジIDの型ではパラメータ化されません。
GraphConfig config = GraphConfigBuilder.forFileFormats(...)
...
.setVertexIdType(IdType.LONG)
...
.build();
PgxGraph G = session.readGraphWithProperties(config);
VertexProperty<Long, String> p1 = G.createVertexProperty(PropertyType.STRING);
EdgeProperty<Double> p2 = G.createEdgeProperty(PropertyType.DOUBLE);
G = session.read_graph_with_properties(config)
p1 = G.create_vertex_property("string")
p2 = G.create_edge_property("double")
セッションから一時プロパティを削除するには、プロパティ・オブジェクトでdestroyAsync()
(またはdestroy()
)をコールします。
親トピック: 一時データの管理