Na tomto cvičení budeme používať databázu záznamu crawlovania z projektu Kapsa. Môžete si ju stiahnuť tuto: crawl.sql.

Alternatívne môžete používať zo siete UPJŠ dostupnú MySQL DB na:

  • adresa servera nosql.gursky.sk,
  • schéma/databáza crawl,
  • používateľ student,
  • heslo nosql.

Dao pre tieto dáta je k dispozícii v novej verzii projektu https://gitlab.science.upjs.sk/nosql-2020/nosql-data-source.git

Na tomto cvičení budeme používať maven projekt neo4j (s groupId org.neo4j).

Keď budeme pracovať so vzdialenou DB, môžete k nej pristupovať okrem javy aj cez neo4j browser na adrese http://nosql.gursky.sk:7474/

  • host: bolt://nosql.gursky.sk:7687
  • user: neo4j
  • heslo: ls90zxcnm89fs46p6d7a1jn

Zadania:

  1. Vytvorte si lokálnu databázu neo4j s využitím new GraphDatabaseFactory().newEmbeddedDatabase(new File(LOCAL_STORE_DIR)) a vložte do nej graf crawlovaní z vyššie uvedenej databázy.
  2. Vypíšte všetky seedUrl, ktoré sú v grafe prítomné
  3. Vypíšte strom jedného sťahovania – teda na akých všetkých URL adresách crawler bol a vypíšte koľko uzlov ste vypísali.
  4. Vytvorte nový graf crawlovaní s tým, že sa v ňom nebudú vyskytovať dva uzly (uzly s rovnakou URL ale rôznou hodnotou parametra id budú zlúčené, do parametra sa uloží databázou generované id) s rovnakou url adresou a zistite, koľko vypíše predchádzajúca metóda
  5. Vypíšte všetky najkratšie cesty zo seedUrl k detailovým stránkam
  6. Vložte graf jedného sťahovania s použitím objektovo grafového mapovania (spring-data-neo4j) s tým, že sa v ňom nebudú vyskytovať dva uzly s rovnakou url adresou
    1. Vypíšte všetky detailové stránky.
    2. Vypíšte všetky najkratšie cesty zo seedUrl k detailovým stránkam.
    3. Vypíšte všetky najkratšie cesty zo seedUrl k detailovým stránkam aj s XPathmi medzi stránkami