ฉันกำลังพยายามสร้างข้อความค้นหาโดยใช้ไซเฟอร์ซึ่งจะ "ค้นหา" ส่วนผสมที่ขาดหายไปที่เชฟอาจมีกราฟของฉันถูกตั้งค่าดังนี้:
(ingredient_value)-[:is_part_of]->(ingredient)
(ingredient)
จะมีคีย์ / ค่าของชื่อ = "สีย้อม" (ingredient_value)
อาจมีคีย์ / ค่าของ value = "สีแดง" และ (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
และรวบรวมผลลัพธ์ด้วยตัวเอง