シェフが持っている可能性のある不足している材料を「見つける」サイファーを使用してクエリを作成しようとしています。グラフは次のように設定されています。
(ingredient_value)-[:is_part_of]->(ingredient)
(ingredient)
name = "dyecolors"のキー/値があります。 (ingredient_value)
value = "red"および "の一部"のキー/値を持つことができます(ingredient, name="dye colors")
。
(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)
このクエリを使用しingredients
て、レシピに必要な実際の値ではなくすべてを取得ingredients
していますが、各レシピに必要なすべての材料ではなく、シェフが持っていないものだけを返したいと思います。私は試した
(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)<-[:has_ingredient*0..0]-chef
しかし、これは何も返しませんでした。
これはcypher / neo4jで実現できるものですか、それともすべての材料を返して自分で分類するのが最善の方法ですか?
ボーナス:また、暗号を使用して、シェフが持つすべての値をレシピが必要とするすべての値に一致させる方法もあります。これまでのところ、aによって返されるすべての部分一致のみを返しchef-[:has_value]->ingredient_value<-[:requires_value]-recipe
、結果を自分で集計しました。