บทช่วยสอน: สืบค้นกราฟโดยใช้ GQL

Note

คุณลักษณะนี้อยู่ในการแสดงตัวอย่างสาธารณะ การแสดงตัวอย่างนี้จะมีให้โดยไม่มีข้อตกลงระดับบริการ และไม่แนะนําสําหรับปริมาณงานการผลิต คุณลักษณะบางอย่างอาจไม่ได้รับการสนับสนุนหรืออาจมีความสามารถที่จํากัด สําหรับข้อมูลเพิ่มเติม โปรดดู ข้อกําหนดการใช้งานเพิ่มเติมสําหรับตัวอย่าง Microsoft Azure

ในขั้นตอนบทช่วยสอนนี้ คุณจะสืบค้นกราฟของคุณโดยใช้ GQL (Graph Query Language) ในตัวแก้ไขโค้ด GQL มอบความสามารถในการสืบค้นที่มีประสิทธิภาพสําหรับรูปแบบกราฟและการวิเคราะห์ที่ซับซ้อน

เปลี่ยนเป็นโหมดแก้ไขโค้ด

ทําตามขั้นตอนเหล่านี้เพื่อเปลี่ยนไปใช้เครื่องมือแก้ไขโค้ดและเริ่มสืบค้นกราฟโดยใช้ GQL

  1. ไปที่หน้าแรกของกราฟ

  2. เลือก "ตัวแก้ไขโค้ด " จากเมนูด้านบน

    สกรีนช็อตแสดงผลการเลือกตัวแก้ไขโค้ด

เรียกใช้คิวรีพื้นฐาน

  1. ป้อนคิวรี GQL ลงในช่องป้อนข้อมูล ตัวอย่างเช่น นับคําสั่งซื้อทั้งหมด:

    MATCH (n:`Order`) RETURN count(n) AS num_orders
    
  2. เลือก เรียกใช้คิวรี เพื่อดําเนินการคิวรี

แบบสอบถามนี้จะค้นหาโหนดทั้งหมดที่มีป้ายกํากับ Order นับ และส่งกลับผลรวมเป็นnum_orders นี่เป็นวิธีง่ายๆ ในการยืนยันว่ากราฟของคุณมีข้อมูลและจํานวนตรงกับจํานวนแถวคําสั่งซื้อที่คุณโหลด รูปภาพต่อไปนี้แสดงผลลัพธ์ของคิวรี:

สกรีนช็อตแสดงผลลัพธ์ของการเรียกใช้คิวรี GQL เพื่อนับคําสั่งซื้อทั้งหมด

สร้างคิวรีตัวสร้างคิวรีใหม่ใน GQL

ใน ขั้นตอนบทช่วยสอนก่อนหน้านี้ คุณใช้ตัวสร้างแบบสอบถามเพื่อค้นหาผลิตภัณฑ์ที่ลูกค้าเฉพาะซื้อ นี่คือคําค้นหาเดียวกันที่เขียนใน GQL:

MATCH (c:Customer)-[:purchases]->(o:`Order`)-[:`contains`]->(p:`Product`)
FILTER c.fullName = 'Carla Adams'
RETURN c.fullName, o, p.productName

คิวรีนี้:

  1. ตรงกับ ลวดลาย CustomerpurchasesOrdercontainsProduct
  2. ตัวกรอง สําหรับลูกค้าชื่อ "Carla Adams"
  3. ส่งคืน ชื่อนามสกุล รายละเอียดการสั่งซื้อ และชื่อผลิตภัณฑ์ของลูกค้า

รูปต่อไปนี้แสดงผลลัพธ์ของคิวรี (แสดงเฉพาะบางส่วนของข้อมูลที่ส่งกลับ)

สกรีนช็อตแสดงผลลัพธ์ของการเรียกใช้คิวรี GQL เพื่อค้นหาผลิตภัณฑ์ที่ Carla Adams ซื้อ

เรียกใช้คิวรีที่ซับซ้อน

คุณสามารถเรียกใช้การสืบค้นที่ซับซ้อนมากขึ้นซึ่งรวมรูปแบบกราฟที่ตรงกัน การกรอง การรวม การเรียงลําดับ และการจํากัด:

MATCH (v:Vendor)-[:produces]->(p:`Product`)->(sc:`ProductSubcategory`)->(c:`ProductCategory`), 
      (o:`Order`)-[:`contains`]->(p)
FILTER c.categoryName = 'Clothing'
LET vendorName = v.vendorName, subCategoryName = sc.subCategoryName
RETURN vendorName, subCategoryName, count(DISTINCT p) AS num_products, count(o) AS num_orders
GROUP BY vendorName, subCategoryName
ORDER BY num_orders DESC
LIMIT 5

คิวรีนี้:

  1. จับคู่ รูปแบบที่เชื่อมต่อผู้จัดจําหน่ายกับผลิตภัณฑ์ผ่านห่วงโซ่อุปทาน และใบสั่งกับผลิตภัณฑ์
  2. ตัวกรอง สําหรับสินค้าใน Clothing หมวดหมู่
  3. กําหนด ตัวแปรสําหรับชื่อผู้จัดจําหน่ายและประเภทย่อย
  4. ส่งกลับ ชื่อผู้จัดจําหน่าย ชื่อประเภทย่อย จํานวนผลิตภัณฑ์ที่แตกต่างกัน และจํานวนใบสั่ง
  5. จัดกลุ่ม ผลลัพธ์ตามผู้จัดจําหน่ายและประเภทย่อย
  6. ผลลัพธ์ของคําสั่งซื้อตามจํานวนคําสั่งซื้อจากมากไปหาน้อย
  7. จํากัด ผลลัพธ์ไว้ที่ 5 อันดับแรก

โดยสรุป จะแสดงผู้จัดจําหน่ายห้าอันดับแรกที่จัดหาผลิตภัณฑ์ใน Clothing ประเภท พร้อมกับจํานวนผลิตภัณฑ์ที่พวกเขาจัดหาและจํานวนใบสั่งที่ผลิตภัณฑ์เหล่านั้นมี

สกรีนช็อตแสดงผลลัพธ์ของการเรียกใช้คิวรี GQL เพื่อค้นหาผู้ขายห้าอันดับแรกที่จัดหาผลิตภัณฑ์ในหมวดหมู่เสื้อผ้า

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการรองรับภาษา GQL โปรดดู:

ขั้นตอนถัดไป