シェフが持っている可能性のある不足している材料を「見つける」サイファーを使用してクエリを作成しようとしています。私のグラフは次のように設定されています。
(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
、結果を自分で集計したすべての部分一致のみを返しました。