Microsoft Word - VI xfilcakt.docx

Podobné dokumenty
Centrum vedecko-technických informácií, Odbor pre hodnotenie vedy, Oddelenie pre hodnotenie publikačnej činnosti Vyhľadávanie a práca so záznamami - C

Matej Kendera - PDF, word, lucene, java

sprievodca_exp.pdf

Detail správy a súvisiace prvky Dátum zverejnenia: Verzia: 5 Dátum aktualizácie: Detail správy a súvisiace prvky UPOZORNENIE

PowerPoint Presentation

Balíčkovanie FreeSWITCH-u pre Debian Autor: Zdenko Holeša, InžProjekt 1, KIS FRI ŽU Predkompilované balíčky Predkompilované balíčky existujú pre Debia

Navigácia po úvodnej stránke elektronickej schránky Dátum zverejnenia: Verzia: 10 Dátum aktualizácie: Navigácia po úvodnej st

sprievodca-priestor.pdf

Microsoft Word - Priloha_1.docx

Microsoft Word - Manažment_tagov_tim24_tema12_2017.docx

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Internet vecí v našich ž

GEODETICKÝ A KARTOGRAFICKÝ ÚSTAV BRATISLAVA Chlumeckého 4, Bratislava II Obsah 1. Export údajov ZBGIS do CAD formá

Tomáš Jelínek - včely vyhľadávanie

Microsoft PowerPoint - CONNECT_R&A_76_sk

portál scientia.sk

Microsoft Word - 06b976f06a0Matice - Uzivatelska Dokumentacia

eKasa

Používateľská príručka Obsah Používateľská príručka... 1 Administrácia servera... 2 FTP... 2 Remote Desktop... 3 Administrácia databáze:... 3 Spusteni

Pravidelné úlohy verzia ku dňu SEAL IT Services, s.r.o. Kontakt: SEAL IT Services, s.r.o., Topoľová 4, Bratislava 1, tel.:

Microsoft Word - prirucka_katedry_nova

eKasa

eKasa

Snímka 1

Poloautomatická anotácia stránok internetových obchodov Dávid Varga 4Ib, Abstrakt. Bakalárska práca sa zaoberá vytvorením metód na indukciu

Vyhľadávanie v CREPČ 2 (aktualizované dňa ) Centrum vedecko-technických informácií SR Odbor pre hodnotenie vedy Oddelenie pre hodnotenie pub

Informačný systém pre externú časť a písomnú formu internej časti maturitnej skúšky Informačný systém pre EČ a PFIČ maturitnej skúšky Užívateľská prír

Finančné riaditeľstvo Slovenskej republiky 9/ORP/2019/IM Stiahnutie identifikačných a autentifikačných údajov pri ORP - rola Administrátor/Technik Inf

User:Michal.Palcek

Chemical Business NewsBase

Portál VŠ a CEP

SAEAUT SNMP OPC Server

(Microsoft Word - Registr\341cia \372\350tu Hik-Connect.docx)

Používateľská príručka POUŽÍVATEĽSKÁ PRÍRUČKA Generátor XML dávok pre Informačný systém kontrolných známok z MS Excel šablóny Dátum: Verzia

Webové portály pre Hlavné mesto SR a Dopravný podnik Bratislava Ako sme Hlavnému mestu a Dopravnému podniku Bratislava zabezpečili väčší používateľský

Finančné riaditeľstvo Slovenskej republiky 10/ORP/2019/IM Stiahnutie identifikačných a autentifikačných údajov pri ORP - rola Administrátor Informácia

Elektronické služby spoločných modulov ÚPVS a prístupových komponentov

iot business hub whitepaper isdd_em_New.pdf

User:Andrej Sedlacek

Finančné riaditeľstvo Slovenskej republiky 12/ORP/2019/IM Postup pre overenie pravosti pokladničného dokladu Informácia je určená pre subjekty (zákazn

Január 2012 (verzie ) Popis zmien v systéme PROLUC

Detekcia akustických udalostí v bezpečnostných aplikáciách

Distance search Ján Garaj Fakulta informatiky a informačných technológií Slovenská technická univerzita Školský rok: 2008/09 Popis problému a motiváci

Agenda záverečnej práce pedagóg Celá agenda týkajúca sa záverečnej práce je dostupná v obrazovke Záverečná práca (menu Agenda pedagóga -> Záverečné pr

INTERNET BANKING Práca s tokenom VŠETKO, ČO JE MOŽNÉ with.vub.sk, Bank of

dFlex Nitra spol. s r.o.

VSDC Free Video Editor stručný návod na používanie Link na sťahovanie softvéru: K prog

User:viliam.kubis

Uchádzač o štúdium potvrdenie el. návratky. Prihlasovacie údaje do el. návratky na stránke vidíte na stránke

Pracovný postup pre vypĺňanie údajov elektronického formulára IŠIS pre spravodajskú jednotku 1

NÁZOV VYSOKEJ ŠKOLY

STRUČNÝ NÁVOD KU IP-COACHU

Používateľská príručka elektronických služieb pre žiadateľov o štatistické informácie október 2016

aplikácia do mobilého telefónu na stiahnutie digitálneho tachografu

Microsoft Word - o06_Príručka k inštalácii a registrácii OverKupon_v4.doc

CitiManager - Migration Quick Reference Guide for Cardholders_Slovak_fin

Objektovo orientované programovanie

SK_mTransfer_Okamzita_notifikacia_ indd

Import absencí z ASC

Príloha č. 1 k USM_UGKK SR_6/2019

Návod na vytvorenie kvalifikovaného elektronického podpisu prostredníctvom občianskeho preukazu s čipom Dátum zverejnenia: Verzia: 1 Dátu

gameDescription_bigApple

PowerPoint Presentation

Architektúra a návrh Zdôvodnenie navrhnutej architektúry Systém si architektonicky môžeme rozdeliť na viacero vrstiev. Najpodstatnejšie je oddelenie z

Návod na obsluhu FiskalPRO Mobile

Georeceive a Geoshopping

SK01-KA O1 Analýza potrieb Zhrnutie BCIME tím Vyhlásenie: "Podpora Európskej komisie pre výrobu tejto publikácie nepredstavuje súhlas

Novinky programu MSklad

Ako si mám nainštalovať nový upgrade z Internetu?

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Informačný systém pre materské školy Bakalárska práca 2019 Monika Vlčková

0022-vub-mobilne-tokeny-200x200-v03.indd

Snímka 1

Používateľská príručka pre webovú aplikáciu ON!Track Príručka pre webovú aplikáciu, verzia 1.1

Spustenie založenej VM mimo vmware ESX

PowerPoint Presentation

Používateľský manuál EZP

Start of the Week Call

Identity Lifecycle Management

IIS MH SR - Príručka k Portálu elektronických služieb

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE Fakulta informatiky a informačných technológií STU Ústav počítačových systémov a sietí ZADANIE SEMESTRÁLNE

Dokumentácia k inžinierskemu dielu

Parsovanie MusicXML súborov Bc. Ondrej Grman Študijný program: Informačné systémy Predmet: Vyhľadávanie informácií Ak. rok: 2013/2014

ADBEE_System_pre_pozicovne_Datasheet copy

gis5 prifuk

Integrácia Čo je SOA? Peter Rybár Daniel Buchta Jozef Sivek

Užívateľský manuál FULL HD LED stropný monitor (AUX/HDMI/USB/FM-TX)

PowerPoint Presentation

Prezentácia programu PowerPoint

User:tomas.melicher

IPAC – Vyhľadávanie pomocou režimu INDEX

Microsoft PowerPoint - SLIDES_02DTD.ppt

C-Monitor WIN klient pre verziu 2.8

eKasa

2.5. Dotyčnica krivky, dotykový kužeľ. Nech f je krivka a nech P V (f) (t.j. m P (f) 1). Ak m P (f) = r a l je taká priamka, že I P (f, l) > r, potom

Príloha č. 4 Údaje tranzitného vyhlásenia spolu s údajmi PCV o vstupe / výstupe V prípade, ak bude spolu s elektronickým tranzitným vyhlásením predlož

Vzorové riešenia úlohy 4.1 Bodovanie Úvod do TI 2010 Dôvod prečo veľa z Vás malo málo bodov bolo to, že ste sa nepokúsili svoje tvrdenia dokázať, prič

Microsoft PowerPoint - OOP_prednaska_10.pptx

Prepis:

Slovenská technická univerzita Fakulta informatiky a informačných technológií Ilkovičova 3, 842 16 Bratislava 4 Vyhľadávanie informácií Tomáš Filčák Študijný program: Informatika Ročník: 4 Predmet: Vyhľadávanie informácií Ak. rok: 2012/2013

Obsah 1 Informácie o slovenkých firmách a živnostníkoch... 1 1.1 Motivácia... 1 2 Technológie... 1 2.1 Redis... 1 2.2 Elastic search... 1 2.3 Tire... 2 2.4 Resque... 2 2.5 Nokogiri... 2 3 Stručný postup riešenia... 3 3.1 Dolovanie dát... 3 3.2 Filtrovanie množiny dát... 3 3.3 Parsovanie dát... 3 3.4 Indexovanie dát... 3 3.5 Vyhľadávanie nad množinou dát... 3 4 Podrobný popis krokov... 3 4.1 Dolovanie dát... 3 4.2 Filtrovanie množiny dát... 3 4.3 Parsovanie dát... 4 4.4 Indexovanie dát... 4 Vyhľadávanie... 4 Preferencia vyhľadávania... 4 5 Poskytovaná funkcionalita:... 5 5.1 Kraulovanie ľubovoľného webu... 5 5.2 Kraulovanie obchodného registra... 5 5.3 Parsovanie dát... 5 5.4 CRUD manipulácia s objektami... 5 6 Škáľovateľnosť riešenia... 5 Prílohy... 6

1 Informácie o slovenkých firmách a živnostníkoch Implementovaná aplikácia bude poskytovať účinný nástroj na vyhľadávanie informácií v obchodnom registri. Zároveň bude slúžiť ako krauler. Ako zdroj údajov bude použitý obchodný register Slovenskej republiky. Vyhľadanie informácií bude pozostávať zo zadania "query" selektora. Systém bude poskytovať jednoduchý filter podľa oblasti/adresy, ičo kódu, dátumu založenia a mena spoločnosti. Aplikácia používateľovi uľahčí vyhľadávanie aj vďaka sprístupneniu dát z dvoch rozličných zdrojov. Výstup budú predstavovať meta dáta - základné informácie o hľadanom subjekte ako i pôvodný dokument. 1.1 Motivácia Túto tému som si vybral aj z dôvodu ďalšieho rozvinutia aplikácie ako databázy firiem s používateľskými recenziami a skúsenosťami s jednotlivými obchodnými subjektami. 2 Technológie Systém bude implementovaný ako webová aplikácia postavená nad Ruby on Rails frameworkom. Dáta budú uložené lokálne a ich extrakcia bude zabezpečená kraulovaním pomocou knižnice cobweb. Táto knižnica vyžaduje bežiacu inštanciu Redis servra. Nad dátami bude potrebné implementovať "full-text search engine". Na tento účel som sa rozhodol použiť elasticsearch knižnicu, ktorá je postavená na jadre Apache Lucene. 2.1 Redis Redis je klasickou "key-value" databázov, čo znamená, že pod jedným kľúčom sa uloží hodnota alebo zvolená štruktúra. Dáta sú uchovávané primárne v pamäti a vďaka tomuto spôsobu implementácie je prístup k nim veľmi rýchly. Redis nie je obmedzený pamäťou RAM a od verzie 2.0 využíva na zápis i swap súbor. Redis podporuje MASTER-SLAVE replikáciu s tým, že zo všetkých SLAVE inštancií je možné čítať, ale zapisovať len na MASTER. Redis komunikuje s klientami i so svojimi inštanciami pomocou TCP protokolu. Komunikácia nie je šifrovaná. 2.2 Elastic search Elastic search je jedna z vhodných možností na dosiahnutie stanovených cieľov a kritérií: rýchlosť vyhľadávania by mala byť čo najväčšia indexovanie jednoduché napríklad cez HTTP protokol pomocou JSON objektov vyhľadávací server by mal byť dostupný vždy, keď ho potrebujeme vyhľadávanie by malo prebiehať v reálnom čase Elastic search je knižnica postavená na vyhľadávacom jadre Apache Lucene. Je "open source" distribuovaný a čo je pre našu aplikáciu tiež dôležité, "RESTfull" riešenie. Pre integráciu elasticsearch-u do projektu je potrebné použiť knižnicu, ktorá bude slúžiť ako komunikačné rozhranie medzi samotnou aplikáciou a elasticsearch-om. Zvolil som preto ruby gem Tire. Táto knižnica je z pohľadu veľkosti komunity a používanosti na prvom mieste. Inštalácia sudo apt-get update sudo apt-get install openjdk-7-jre -y wget https://github.com/downloads/elasticsearch/elasticsearch/elasticsear ch-0.19.0.tar.gz -O elasticsearch.tar.gz tar -xf elasticsearch.tar.gz rm elasticsearch.tar.gz 1

sudo mv elasticsearch-* elasticsearch sudo mv elasticsearch /usr/local/share curl -L http://github.com/elasticsearch/elasticsearchservicewrapper/tarball/master tar -xz mv *servicewrapper*/service /usr/local/share/elasticsearch/bin/ rm -Rf *servicewrapper* sudo /usr/local/share/elasticsearch/bin/service/elasticsearch install sudo ln -s `readlink -f /usr/local/share/elasticsearch/bin/service/elasticsearch` /usr/local/bin/rcelasticsearch sudo service elasticsearch start 2.3 Tire Tire je wrapper elasticsearch-u, ktorý nám poskytuje pohodlné použitie tejto knižnice v Ruby. Pomocou tejto knižnice vieme využívať všetku funkcionalitu, ktorú poskytuje elasticsearch a ľahko ju integrovať do Rails aplikácie. Pri každej zmene indexovaného objektu sa vykoná "callback", ktorý dotknutý index podľa vykonanej zmeny buď aktualizuje alebo úplne odstráni. 2.4 Resque Keďže celá aplikácia je implementovaná ako web klient, je potrebné zabezpečiť vykonanie niektorých úloh v pozadí. Toto je nevyhnutné pre spustenie crowlovania a samotného parsovania dát. V opačnom prípade by sa požiadavka správala blokujúco. Pomocou resque api vieme zároveň využiť potenciál viac procesorového výpočtového stroja. Pre použitie je potrebné zadefinovať samotný "working queue" a "workera", ktorý je za činnosť a spustenie kódu zodpovedný. Queues crowler_queue orsr_crowler_queue parser_queue Workers crowler_worker orsr_crowler_worker parser_worker Nasledujúcim príkazom spustíme správu procesov vykonávaných na pozadí aplikácie. rake resque:work QUEUE='*' 2.5 Nokogiri Nokogiri je známa knižnica, ktorá nám poslúži ako api, pre spracovanie HTML dokumentu. Využívame pri tom DOM objekt na prechádzanie a vnáranie elementami. 2

3 Stručný postup riešenia 3.1 Dolovanie dát Ako prvé je potrebné získať množinu dát, nad ktorými budeme pracovať. Pomocou navrhnutého algorytmu spustíme crawler nad obchodným registrom. 3.2 Filtrovanie množiny dát Nasledujúcim krokom odstránime všetky nepotrebné dáta, ktoré vznikli kraulovaním webu. Ide o stránky obsahujúce nepodstatné informácie, všetky stránky mimo výpis informácií jednotlivých firiem. V našom prípade krauler extrahuje dáta v slovenčine, ako i v angličtine a tento krok verzie zároveň oddelí. 3.3 Parsovanie dát Po kroku 2 máme k dispozícií dáta. Tieto dáta sú však v hrubej nespracovanej forme a treba ich dať do stavu, ktorý je pre aplikáciu čitateľný. 3.4 Indexovanie dát Tento krok nám zabezpečí naplnenie vyhľadávacieho mechanizmu dátami. 3.5 Vyhľadávanie nad množinou dát Posledná fáza, ktorá je však veľmi dôležitá. Na čo by nám boli dáta keby sme ich nevedeli použiť? Implementovaním tejto fázy zabezpečíme vyhľadávanie nad získanými dátami. Polia, nad ktorými search prebehne sú definované v nasledujúcej časti. Definované polia registra: Definované polia reprezentujú dáta, nad ktorými je implementované vnútro-aplikačné "full-text" vyhľadávanie. obchodné meno business name sídlo registered seat ičo identification number deň zápisu date fo entry región district predmet činnosti objects of company 4 Podrobný popis krokov 4.1 Dolovanie dát Štruktúra webu obchodného registra nám priamo nedovoľuje štandardný postup kraulovania. Stránky a podstránky navzájom nie sú prepojené a preto základný typ kraulovania nám dokáže extrahovať iba stránky, ktoré popisujú obchodný register a nie samotné hľadané dáta. Tieto stránky nám opisujú, ako sa obchodný register má použiť a za akým cieľom bol portál vytvorený a iné opisné informácie. Keď sa však pozrieme na štruktúru URL adresy konkrétneho záznamu, zistíme, že pomocou zmeny parametra ID sa vieme k dátam pomocou GET metódy ľahko dostať. Kraulovanie preto spustíme ako iteráciu meniacich sa URL adries so zmenou ID parametru. Ako výstup dostávame dáta reprezentované v anglickom, ale i slovenskom jazyku. 4.2 Filtrovanie množiny dát Po detailnejšom prehliadnutí získanej množiny dát zistíme, že hore uvedenou metódou sme získali nie len záznamy konkrétnych firiem, avšak i niektoré stránky, bez informatívneho charakteru. Ide 3

prevažne o stránky zobrazujúce formulár vyhľadávania. Tieto dáta je preto potrebné odfiltrovať. Filtrácia sa deje počas procesu parsovania každého dokumentu. Ak stránka nesplní kritéria je presunutá na automatické zmazanie. 4.3 Parsovanie dát Dáta, ktoré sme získali kraulovaním sú fo formáte html. Je preto potrebné extrahovať len potrebné údaje a uložiť ich do databázy alebo priamo do pamäti "search enginu". V našom prípade sú dáta uložené oboma spomenutými spôsobmi. Parsovanie prebieha nad všetkými súbormi nachádzajúcimi sa v priečinku "root/import". 4.4 Indexovanie dát Po úspešnom parsovaní je potrebné dáta uložiť do indexu. Ak by sme tento krok nevykonali, vyhľadávanie nad množinou dát by nebolo možné. Pomocou "callback" volaní ukladaných objektov (predošlý krok) zadefinujeme JSON objekt a následne vytvoríme prislúchajúci index s jednotným typom "entry". Tento proces vieme explicitne spustiť nad existujúcou množinou dát pomocou akcie "Reindex". Príklad mapovania indexova: mapping do indexes :ico, boost: 100 indexes :name, boost: 10 indexes :adress indexes :subject indexes :judicature indexes :entry end Vyhľadávanie Pomocou nasledujúcej množiny operátorov sme schopný vyhľadať presne definovaný výraz. LIKE - query: *ma* -> "tomas" EXACT - query: "phrase" Specific fields - query: name: tomas -> "tomas" OR - query: fictional OR character AND - query: fictional AND character NOT - query: fictional NOT character BY FIELD - guery: field_name: phrase Preferencia vyhľadávania Elasticsearch nám pomocou "_boost" parametra dovoľuje uprednostňovať poradie vyhľadaných dokumentov. Tento postup som aplikoval na pole "ico" a "name". Prítomnosť hľadaného výrazu v týchto poliach je pre používateľa dôležitejšia ako v iných atribútoch. Zároveň je potrebné uviesť, že základný operátor podľa vyhľadávania termov je AND. Toto nastavenie je však explicitne ľahko meniteľné. 4

5 Poskytovaná funkcionalita: 5.1 Kraulovanie ľubovoľného webu Aplikácia poskytuje nástroj na kraulovanie akejkoľvek adresy. Proces, ktorý beží na pozadí prechádza celý web a dáta ukladá na server do repozitára označeného zvolenou doménou. Táto možnosť je zobrazená na obrázku číslo 1, žltou farbou. 5.2 Kraulovanie obchodného registra Keďže jednotlivé záznamy obchodného registra nie sú medzi sebou nijako previazané, nie je možné klasickým spôsobom tieto dáta kraulovať. Na rozdiel od predošlého prípadu je teraz potrebné stránky sťahovať jednotlivo, podľa určených id-čiek. Tie je nutné zadať ako vstupné parametre tohto requestu. Táto možnosť je zobrazená na obrázku číslo 1, modrou farbou. 5.3 Parsovanie dát Pomocou tejto akcie sa dáta pomocou predošlej operácie uložia do databázy a zároveň sa vytvorí index potrebný pre elasticsearch. Reindexovanie - táto možnosť je potrebná len zriedkavo, kedže proces obnovenia indexu je vykonávaný automaticky. Niekedy sa však môže hodiť. 5.4 CRUD manipulácia s objektami Všetky objekty, ktoré sú v databáze uložené je možné mazať, upravovať, vytvárať a čítať. Vyhľadávanie - činnosť, ktorá tvorí základnú prácu s aplikáciou. Sledovanie bežiacich procesov - obrázok 2 zobrazuje poskytované rozhranie pre správu procesov bežiacich na pozadí. 6 Škáľovateľnosť riešenia Aplikácia je spustiteľná z webového rozhrania a jej funkcionalita je prispôsobená konkrétnemu problému. V našom prípade je to extrakcia dát z obchodného registra Slovenskej republiky a "fulltext" vyhľadávanie nad získanou množinou dát. Aplikácia bola však navrhnutá i za cieľom extrakcie dát z ľubovoľného zdroja. Tento prístup nám umožňuje kraulovať ľubovoľný web, avšak interné vyhľadávanie aplikácie nad takouto množinou podporované nie je. 5

Prílohy Obr. 1 Kraulovanie Obr. 2 Správa procesov Obr. 3 Detail záznamu 6