Návod: Dotazujte graf pomocou GQL

V tomto tutoriálovom kroku dotazujete svoj graf pomocou GQL (Graph Query Language) v editore kódu. GQL poskytuje výkonné možnosti dotazovania pre zložité grafové vzory a analýzy.

Prechod do režimu editora kódu

Postupujte podľa týchto krokov, aby ste prešli do editora kódu a začali dotazovať svoj graf pomocou GQL:

  1. Prejdite do režimu Query pre svoj graf.

  2. V hornom pásme vyberte Query builder > Code editor.

    Screenshot zobrazujúci výsledok výberu Code editora.

Spustiť základný dotaz

  1. Do vstupného poľa zadajte dotaz GQL. Napríklad, počítajte všetky objednávky:

    MATCH (n:`Order`) RETURN count(n) AS num_orders
    
  2. Vyberte položku Spustiť dotaz a spustite dotaz.

Tento dotaz nájde všetky uzly s označením Order , spočíta ich a vráti súčet ako num_orders. Je to jednoduchý spôsob, ako si overiť, že váš graf obsahuje dáta a že počet zodpovedá počtu načítaných riadkov poradia. Nasledujúci obrázok ukazuje výsledok dotazu:

Snímka obrazovky zobrazujúca výsledok spustenia GQL dotazu na spočítanie všetkých objednávok.

Znovu vytvorte query builder v GQL

V predchádzajúcom tutoriálovom kroku ste použili query builder na zistenie, aké produkty konkrétny zákazník kúpil. Tu je ten istý dotaz napísaný v GQL:

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

Tento dotaz:

  1. Zodpovedá vzoru CustomerpurchasesOrdercontainsProduct
  2. Filtre pre zákazníka menom "Carla Adams"
  3. Vráti celé meno zákazníka, údaje o objednávke a názvy produktov

Nasledujúci obrázok ukazuje výsledok dotazu (zobrazuje sa len časť vrátených údajov).

Snímka obrazovky ukazujúca výsledok spustenia dotazu GQL na nájdenie produktov zakúpených Carlou Adams.

Spustiť zložitý dotaz

Môžete spustiť zložitejšie dotazy, ktoré kombinujú zodpovedanie grafových vzorov, filtrovanie, agregáciu, triedenie a obmedzovanie:

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

Tento dotaz:

  1. Zodpovedá vzoru, ktorý spája dodávateľov s produktmi cez dodávateľský reťazec a objednávky s produktmi.
  2. Filtre pre produkty v tejto kategórii Clothing .
  3. Definuje premenné pre názvy dodávateľov a podkategórií.
  4. Vráti názov dodávateľa, názov podkategórie, samostatný počet produktov a počet objednávok.
  5. Zoskupte výsledky podľa dodávateľa a podkategórie.
  6. Príkazy sa získavajú podľa počtu poriadkov v klesajúcom poradí.
  7. Limituje výsledky na top 5.

Na záver ukazuje päť najlepších dodávateľov dodávajúcich produkty v kategórii Clothing , spolu s počtom produktov, ktoré dodávajú, a počtom objednávok týchto produktov.

Snímka obrazovky zobrazujúca výsledok spustenia dotazu GQL na nájdenie piatich najlepších dodávateľov dodávajúcich produkty v kategórii Oblečenie.

Pre viac informácií o podpore jazyka GQL pozri:

Ďalší krok