5

ユーザーとアイテムの二部グラフがあります。これをneo4jに実装したい。ノードを区別する方法はありますか?現在、唯一の違いはプロパティ値にあります。

node A properties:
type=user, age=18, name=user123
node B properties:
type=item, price=123, name=item1234

サイファーでグラフをクエリすると、次のようになります。

-get all users:
start n=node:node_auto_index('type:user') return n;
start n=node:node_auto_index('age:*') return n;

1: ただし、すべてのユーザーに age プロパティがあるため、正確なノード タイプを指定する必要はありませんね。とにかく指定する必要がありますか?

2: 次に、type プロパティが完全に重複しているため、プロパティ user を持つ特定のノードを 1 つ作成し、プロパティ item を持つ特定のノードを 1 つ作成して、すべてのユーザー ノードとすべてのアイテム ノードを適切なルート ノードに関連付けるよりも簡単ではないでしょうか。 ?

3:ノードを作成するときに、ノードのパラメータータイプを作成する以外に、ノードのタイプを指定する方法はneo4jにありますか? (ノードの各グループのようなものはデータベースの異なるセクションに保存されるため、特定のグループを照会または選択するには、すべてのノードを実行してタイプパラメーターを確認するのではなく、この領域を指すだけで済みます)

4

1 に答える 1

2

まあ、黄金律はありません。1 つのタイプのノードが多数ある場合は、インデックスを使用することをお勧めします。それ以外の場合は、ノード タイプも便利です。非常に大きなスーパーノードは物事を遅くし、インデックスとしてより適切に扱われるため、ユースケースによって異なります。

ノードタイプに一意のプロパティがあることがわかっている場合は、もちろんそのプロパティからそれを推測して、そのプロパティをスキップできtypeます。

于 2012-08-24T13:49:42.560 に答える