1

配列のインデックスまたはリレーションを実装するための設計提案が必要です。実装に最新のSpringDataNeo4jを使用しています。以下のようなカテゴリのフィールドを持つノードがありますが、

@NodeEntity
Class Product {

      Set<Category> Categories;

}
public enum Category {
RTW,
SHOE,
DENIM,
OUTER_WEAR
}

ここで、XとYのカテゴリを持つ製品を見つける必要があります(例:RTWとSHOE)。これを達成するための最良の方法は何ですか?配列タイプにインデックスを作成できますか?または、Categoryの新しいNodeEntityを作成し、ProductとCategoryの間に必要な関係を作成しますか?

これについての助けをいただければ幸いです。前もって感謝します。

4

1 に答える 1

3

リレーションシップはグラフ データベースの性質であるため、リレーションシップを使用する必要があります。

[ProductA(Node)] ---[HAS_CATEGORY(Relation)]---> [Category1 (Node)] <--[HAS_CATEGORY(Relation)]---- [ProductB (Node)]

各カテゴリの製品数、最も売れている製品に基づく最も人気のあるカテゴリ、ユーザーの推奨事項などを表示するとします。横断クエリを使用すると、簡単に計算できます。関連付けるためではなく、最適化のためにインデックスを使用する必要があります。

gremlin のビデオ プレゼンテーションをご覧ください。非常に強力です : http://www.youtube.com/watch?v=5wpTtEBK4-E

Spring Data は、Cypher および Gremlin クエリ言語をサポートしています。

グラフ データベースのモデリング カテゴリの詳細については、http: //blog.neo4j.org/2010/03/modeling-categories-in-graph-database.htmlを参照してください。

于 2012-08-27T12:36:52.353 に答える