カテゴリをノードまたはラベルとして実装する必要があるかどうかを決定しようとしています。
特に、カテゴリに属するノードの数を取得するクエリはそれほど簡単ではありません。
ノードはより多くのカテゴリに属することができなければなりません!
ラベルとしてのカテゴリ、バリアント 1
カテゴリのリストをどこかに保管してから、次のようにします。
MATCH a:cat1, b:cat2, c:cat3, ...
多くのカテゴリを使用すると、多くの列が表示されます..それはあまり良くありません。また、クエリの前処理がたくさんあります。
そこから簡単にカウントできるかどうかさえわかりません。
ラベルとしてのカテゴリ、バリアント 2
MATCH n:category <-- the category label is used to limit the amount of nodes
RETURN DISTINCT labels(n), count(*) as count
次のようなものが返されます。
["category","the actual category label"], 2
完璧に見えますが、ノードに複数のカテゴリがある場合、これは機能しません
["category","cat1","cat2"], 2 <-- two nodes found with category "cat1" and "cat2"
["category","cat1"], 4 <-- four nodes found with category "cat1"
今、私はカテゴリごとのカウントを取得する方法がわかりません...
多分何かで、extract(..labels()..)
またはfilter(..labels()..)
それを行うことができるかもしれませんが、方法がわかりません。
ノードとしてのカテゴリはい、これは機能します...これは非常に簡単です。しかし、ラベルはノードを分類するためのものではないでしょうか? さらに、私が作成するすべての余分な関係..
たぶん、ラベルとノードの両方として実装する必要がありますか?
次に、ラベルを使用して、カテゴリを持つすべてのノードをすばやく取得できます。ノードを使用すると、カテゴリ数を取得できます。
私はまだこの問題について良い見通しを探しているので、具体的な実装の質問はまだできません。