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

Nastavíme práva:

GRANT ALL privileges on `crawl`.* to `ais-like-user`@`localhost`;
GRANT ALL privileges on `crawl`.* to `ais-like-user`@`%`;
FLUSH PRIVILEGES;

Pre lokálnu inštaláciu môžete použiť docker:

docker run --name my_neo4j -p 7474:7474 -p 7687:7687 neo4j

Cez neo4j browser sa napojíte na adrese http://localhost:7474/. Cez javu sa budeme pripájať:

  • host: bolt://localhost:7687
  • user: neo4j
  • heslo: neo4j

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