• No results found

Techniques for web search engines construction and optimization

N/A
N/A
Protected

Academic year: 2021

Share "Techniques for web search engines construction and optimization"

Copied!
79
0
0

Loading.... (view fulltext now)

Full text

(1)UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO. Blaž Breznik. TEHNIKE ZA IZGRADNJO IN OPTIMIZACIJO DELOVANJA SPLETNIH ISKALNIKOV Magistrsko delo. Maribor, junij 2017.

(2) TEHNIKE ZA IZGRADNJO IN OPTIMIZACIJO DELOVANJA SPLETNIH ISKALNIKOV Magistrsko delo. Študent:. Blaž Breznik. Študijski program:. študijski program 2. stopnje Informatika in tehnologije komuniciranja. Mentor:. doc. dr. Domen Verber.

(3) I.

(4) ZAHVALA Zahvaljujem se mentorju, doc. dr. Domnu Verberju za pomoč in vodenje pri opravljanju magistrskega dela.. Zahvaljujem se tudi staršem, ki so mi vsa ta leta stali ob strani in mi omogočili študij.. II.

(5) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov Ključne besede: podatkovno rudarjenje, spletni iskalniki, optimizacija delovanja, indeksiranje, spletni pajki. UDK: 004.659:004.774(043.2). Povzetek. V magistrskem delu se spoznamo s spletnimi iskalniki, njihovim delovanjem in tehnikami za njihovo izdelavo. Poskušamo razviti lasten spletni iskalnik, ki temelji na tehnikah in tehnologijah, opisanih v teoretičnem delu. Spletni iskalnik uporabnikom omogoča iskanje po rezultatih, ki v ozadju neprestano posodabljajo svoj indeks s pomočjo spletnih pajkov. Uporabnost izdelane rešitve pokažemo tudi na dveh primerih. Ugotovili smo, da je v sklopu magistrskega dela preveč omejitev, da bi lahko izdelali rešitev, ki bi iskala po globalnih rezultatih in se približala iskalnikom, kot je Google. Lahko pa izdelamo uporaben lokalni iskalnik, ki išče po določeni spletni strani. Takšen se je med testiranji odrezal celo bolje od iskalnika Google.. III.

(6) Techniques for construction and optimization of operation of web search engines Key words: data mining, search engines, performance optimization, indexing, web spiders. UDK: 004.659:004.774(043.2). Abstract. In this master's thesis, we get to know search engines, how they function and what techniques can be used to develop our search engine which bases on techniques and technologies described in the theoretical part. A search engine allows users to search results which are continually being updated in the background using web crawlers. We also show the usefulness of the created solution on two examples. We found out that within the scope of the thesis there are too many restrictions to be able to produce a solution that would use global search data and be as good as Google. What we can create however is a local search engine that is only limited to a particular website which in tests showed to be even better than Google.. IV.

(7) KAZALO VSEBINE 1. UVOD ......................................................................................................................................... 1. 1.1. Opredelitev problema in področja ................................................................................................. 1. 1.2. Namen in cilji magistrskega dela .................................................................................................... 4. 1.3. Predpostavke in omejitve magistrskega dela ................................................................................. 5. 1.4. Raziskovalna vprašanja in hipoteze ................................................................................................ 6. 1.5. Uporabljene metode raziskovanja .................................................................................................. 6. 2. SPLETNI ISKALNIKI................................................................................................................... 8. 2.1. Zgodovina spletnih iskalnikov ...................................................................................................... 12. 2.2. Pregled obstoječih rešitev ............................................................................................................ 14. 3. DELOVANJE SPLETNIH ISKALNIKOV .................................................................................. 18. 3.1. Tehnike za pridobivanje podatkov................................................................................................ 19. 3.1.1. Meta oznake .................................................................................................................................. 20. 3.1.2. OG oznake ...................................................................................................................................... 21. 3.1.3. Bonton pridobivanja podatkov iz spletnih strani ........................................................................... 21. 3.2. Indeksiranje in razvrščanje podatkov ........................................................................................... 23. 3.2.1. Faktorji razvrščanja spletnih strani ................................................................................................ 23. 3.2.2. Obravnavanje nezaželenih spletnih strani ..................................................................................... 26. 3.3. Poizvedbe ..................................................................................................................................... 28. 3.3.1 3.4. 4 4.1. Predvidevanje iskanja .................................................................................................................... 28 Nabori podatkov in big data ......................................................................................................... 29. IZDELAVA SPLETNEGA ISKALNIKA ..................................................................................... 30 Funkcionalnosti ............................................................................................................................ 33. V.

(8) 4.1.1. Iskanje ............................................................................................................................................ 33. 4.1.2. Faktorji razvrščanja spletnih strani ................................................................................................ 33. 4.1.3. Zgodovina spletne strani ................................................................................................................ 34. 4.1.4. Zgodovina iskanja ........................................................................................................................... 34. 4.2. Algoritmi za indeksiranje in razvrščanje podatkov ........................................................................ 35. 4.3. Analiza in obdelava podatkov ...................................................................................................... 36. 4.4. Poizvedbe ..................................................................................................................................... 38. 4.5. Praktična uporaba iskalnika ......................................................................................................... 39. 4.6. Možne izboljšave .......................................................................................................................... 40. 5. OPTIMIZACIJA ....................................................................................................................... 42. 5.1. Optimizacija procesa obdelave podatkov ..................................................................................... 42. 5.2. Optimizacija podatkovnih struktur ............................................................................................... 44. 5.2.1. SSD vs HDD disk ............................................................................................................................. 45. 5.2.2. Kreiranje indeksov ......................................................................................................................... 46. 5.2.3. Projekcije........................................................................................................................................ 48. 5.3. 6 6.1. 7. Optimizacija delovanja spletnih storitev in spletne strani ............................................................ 49. REZULTATI ............................................................................................................................. 51 Raziskovalna vprašanja ................................................................................................................ 51. ZAKLJUČEK ............................................................................................................................. 58. SEZNAM UPORABLJENIH VIROV ................................................................................................ 61. VI.

(9) KAZALO SLIK SLIKA 1.1: ŠTEVILO SPLETNIH STRANI V LETIH 2011-2015. ............................................................................................ 2 SLIKA 1.2: NAJPOPULARNEJŠI SPLETNI ISKALNIKI V ZADNJIH LETIH. .................................................................................... 3 SLIKA 2.1 DELOVANJE SPLETNIH ISKALNIKOV. ............................................................................................................... 8 SLIKA 2.2: PRIMER POLJUBNEGA ISKALNIKA. ................................................................................................................ 9 SLIKA 2.3: PRIMER VRNJENIH REZULTATOV ZA ISKALNI NIZ »FERI«. ............................................................................... 11 SLIKA 2.4: GOOGLE LETA 1998. ............................................................................................................................. 13 SLIKA 2.5: TRŽNI DELEŽ SPLETNIH ISKALNIKOV ZA LETO 2015. ....................................................................................... 14 SLIKA 2.6: SPLETNI ISKALNIK GOOGLE. ..................................................................................................................... 15 SLIKA 2.7: SPLETNI ISKALNIK BING. .......................................................................................................................... 16 SLIKA 2.8: SPLETNI ISKALNIK YAHOO. ....................................................................................................................... 16 SLIKA 2.9: SPLETNI ISKALNIK DUCKDUCKGO.............................................................................................................. 17 SLIKA 3.1: PROCES DELOVANJA SPLETNEGA ISKALNIKA. ................................................................................................ 18 SLIKA 3.2: ZASLONSKA SLIKA META OZNAK NA STRANI FAKULTETE ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO. ...... 20 SLIKA 4.1: IZGLED IZDELANEGA SPLETNEGA ISKALNIKA.................................................................................................. 31 SLIKA 4.2: PRIMER SHRANJENE STRANI FACEBOOK, KI STA JO SHRANILA NAŠA REŠITEV IN ISKALNIK GOOGLE. .......................... 34 SLIKA 4.3: DOMAČA STRAN IZDELANEGA ISKALNIKA..................................................................................................... 37 SLIKA 4.4: IZGLED ISKALNIKA NA MOBILNI NAPRAVI. .................................................................................................... 37 SLIKA 4.5: PRIMER ENOSTAVNE POIZVEDBE V KONZOLNEM NAČINU. ............................................................................... 38 SLIKA 4.6: IMPLEMENTACIJA KODE, KI IŠČE PO PODATKIH.............................................................................................. 38 SLIKA 5.1: PRENOS IZVORNE KODE SPLETNE STRANI BREZ ZAHTEVE ZA GZIP KOMPRESIJO. .................................................... 43 SLIKA 5.2: PRENOS IZVORNE KODE SPLETNE STRANI Z GZIP KOMPRESIJO. ......................................................................... 44 SLIKA 5.3: IZVORNO KODO MORAMO POTEM ŠE ODPAKIRATI. ....................................................................................... 44 SLIKA 5.4: USTVARJANJE INDEKSA V UKAZNI VRSTICI NAD POLJE 'URL'. ............................................................................ 46 SLIKA 5.5: REZULTAT UPORABE UKAZA EXPLAIN('EXECUTIONSTATS'). ............................................................................. 47 SLIKA 5.6: PODATKOVNE STRUKTURE ZA SHRANJENE REZULTATE. ................................................................................... 48. VII.

(10) KAZALO GRAFOV GRAF 5.1: RAZLIKA MED PRENOSOM DATOTEKE Z KOMPRESIJO IN BREZ. .......................................................................... 43 GRAF 5.2: POVPREČEN ČAS ISKANJA BREZ IN Z INDEKSI (V MS). ...................................................................................... 47 GRAF 5.3: POVPREČNA VELIKOST SPLETNIH STRANI SKOZI ČAS. ...................................................................................... 49. VIII.

(11) KAZALO TABEL TABELA 2.1: PRIMERJAVA SPLETNIH ISKALNIKOV. ........................................................................................................ 12 TABELA 5.1: PRIMERJAVA SSD IN HDD DISKOV. ........................................................................................................ 45 TABELA 6.1: PRIMERJAVA ISKANJ ZA GLOBALNI SPLETNI ISKALNIK. .................................................................................. 52 TABELA 6.2: REZULTATI ISKANJ ZA GLOBALNI SPLETNI ISKALNIK. ..................................................................................... 53 TABELA 6.3: PRIMERJAVA ISKANJ ZA LOKALNI SPLETNI ISKALNIK. .................................................................................... 54 TABELA 6.4: REZULTATI ISKANJ ZA LOKALNI SPLETNI ISKALNIK. ....................................................................................... 55 TABELA 6.5: PRIMERJAVA REZULTATOV MED GLOBALNIM IN LOKALNIM ISKALNIKOM.......................................................... 56. IX.

(12) SEZNAM UPORABLJENIH KRATIC HTML – Hyper Text Markup Language JS – Javascript CSS – Cascading Style Sheets HTTP – Hyper Text Transfer Protocol API – Application Programming Interface SERP – Search Engine Ranking Position URL – Uniform Resource Locator SQL – Structured Query Language NoSQL – Non Relational Structured Query Language JSON – JavaScript Object Notation OGP – Open Graph Protocol SSL – Secure Sockets Layer SEO – Search Engine Optimization SSD – Solid-State Drive HDD – Hard Disk Drive. X.

(13) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. 1 UVOD. 1.1 Opredelitev problema in področja Svetovni splet igra pomembno vlogo v vsakdanjem življenju ljudi, saj je največja zbirka javno dostopnih informacij. Sestavljen je iz množice dokumentov, ki so razdeljeni po različnih računalnikih oz. strežnikih po celem svetu.. Dandanes si svetovni splet težko predstavljamo brez spletnih iskalnikov, saj nam olajšajo brskanje in iskanje informacij. Spletni iskalniki so kompleksni programi, ki iščejo spletne strani in dokumente na podlagi iskanih nizov in vrnejo rezultate v obliki seznama, ki vsebuje iskani dokument in njegovo lokacijo. So prva destinacija za iskanje informacij. Brez spletnih iskalnikov bi se ob odprtju spletnega brskalnika težko znašli. Kako bi našli nove spletne strani, če ne bi obstajali spletni iskalniki? Kako bi našli odgovore na naša vprašanja? To bi bilo nemogoče, razen če bi že vnaprej poznali naslov spletne strani, na kateri bomo našli odgovore. Uporabniki spletnih iskalnikov le-te uporabljajo za raziskovalne namene, nakupovanje ali zabavo. Iščejo odgovore oz. informacije o vprašanjih, ki jih zanimajo. Skušajo poiskati spletne strani, ki bodo izpolnile določen namen.. Spletni iskalnik je torej kompleksen sistem, ki je zasnovan za iskanje različnih informacij na svetovnem spletu. Iskalniki so ene izmed najbolj naprednih spletnih strani na spletu. Omogočajo nam, da v vnosna polja vnesemo iskalne nize, katere iskalnik nemudoma uporabi, da poišče relevantne spletne strani, ki ustrezajo iskalnim nizom. Rezultati so vrnjeni v realnem času.. Rezultati uporabnikovega iskanja so običajno predstavljeni v zaporednem nizu zadetkov, razvrščenem po relevantnosti. Ti zadetki so lahko spletne strani, slike, video posnetki ali ostale vrste datotek. Spletni iskalniki vzdržujejo informacije v realnem času s pomočjo. 1.

(14) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. algoritmov, ki 'obiskujejo' njim nepoznane spletne strani, iz katerih pridobijo različne podatke – ime spletne strani, vsebino, slike itd. Svetovni splet danes sestavlja skoraj milijardo spletnih strani, vendar je veliko takšnih, ki niso uporabne za končnega uporabnika. Za to obstaja več različnih razlogov, npr. spletne strani, ki več let niso bile posodobljene, neizkušeni razvijalci, nedokončane spletne strani, izdelava spletne strani je danes s pomočjo orodij za neizkušene uporabnike zelo enostavna itd. Spletni iskalniki imajo zaradi tega težko delo. Ločiti morajo med dobrimi in slabimi spletnimi stranmi oz. med stranmi, ki so za končnega uporabnika lahko koristne, in tistimi, ki niso. Slika 1.1: Število spletnih strani v letih 2011-2015. Vir: http://www.internetlivestats.com/total-number-of-websites prikazuje število spletnih strani na letni ravni.. Slika 1.1: Število spletnih strani v letih 2011-2015. Vir: http://www.internetlivestats.com/total-number-of-websites. Večina uporabnikov, ki uporablja spletne iskalnike, le-te uporablja za raziskovalne namene. Uporabljajo jih, da najdejo odgovore na svoja vprašanja oz. za iskanje informacij pri sprejemanju različnih odločitev.. Največji iskalniki, ki jih poznamo, temeljijo na indeksih, ki so podobni tistim v knjižnicah. Ker shranjujejo večinski del svetovnega spleta, je pomembno, da znajo hitro vrniti rezultate na iskalne nize uporabnikov.. 2.

(15) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Poznamo: •. Splošne spletne iskalnike – iskalniki, ki so poznani vsakemu uporabniku interneta. Najbolj poznani so Google, Yahoo in Bing, katerih logotipe prikazuje slika 1.2.. •. Meta-iskalnike – iskalniki, ki za prikaz svojih rezultatov uporabljajo podatke drugega spletnega iskalnika.. •. Geografsko omejene iskalnike – od splošnih spletnih iskalnikov se razlikujejo po tem, da so geografsko omejeni. Primer je najdi.si, ki išče po spletnih straneh v slovenskem jeziku.. •. Lokalne spletne iskalnike – iskalniki, ki so del posamezne spletne strani in omogočajo iskanje po tej strani.. •. Strokovno-izobraževalne iskalnike (Google Scholar ali Ameriški Library of Congress).. •. Iskalnike za službo (indeed.com).. •. Iskalnike za novice (Bing news).. •. Iskalnike po nepremičninah (zillow.com).. Slika 1.2: Najpopularnejši spletni iskalniki v zadnjih letih.. Proces pridobivanja in shranjevanja informacij se imenuje podatkovno rudarjenje. Iskalnik nato analizira vsebino vsake strani in jo indeksira. Podatki o posameznih spletnih straneh so shranjeni v bazi podatkov, nad katero se izvajajo poizvedbe glede na uporabnikove iskalne nize. Ko uporabnik vnese določen iskalni niz, mora sistem glede na kompleksne poizvedbe zagotoviti seznam najbolje ujemajočih se spletnih strani v skladu z iskalnim nizom. Sistem, ki upravlja določen spletni iskalnik, je običajno porazdeljen na več lokacij. Koristnost iskalnika je odvisna od relevantnosti rezultatov, ki jih vrne. Medtem ko obstaja več milijonov spletnih strani, ki lahko vsebujejo enako besedno zvezo, so lahko določene strani popularnejše in pomembnejše od drugih.. 3.

(16) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Največji izziv pri izdelavi spletnega iskalnika je prav gotovo vračanje relevantnih podatkov in ustrezno razvrščanje prikaza vrnjenih rezultatov. Kako izmed več sto tisoč podobnih spletnih strani vedeti, kateri zadetek je najbolj pomemben za iskalni niz? Kako zagotoviti hiter odzivni čas? Pri zbiranju podatkov iz spletnih strani bomo v bazo vstavili več milijonov rezultatov. Baza bo morala biti zelo optimizirana, poizvedbe pa zelo hitre.. 1.2 Namen in cilji magistrskega dela Brez spletnih iskalnikov se danes težko znajdemo na spletu. Ne glede na to, ali uporabljamo internet za nakupovanje, zabavo, učenje ali delo, so spletni iskalniki za večino uporabnikov prva stran, ki jo obiščejo, ko začnejo brskati po spletu.. Cilj magistrskega dela bo tako pregled trenutnih spletnih iskalnikov in algoritmov ter tehnik, ki jih uporabljajo za relevantno vračanje podatkov v najkrajšem možnem času. Sledila bo še izdelava spletnega iskalnika, ki temelji na praksah in tehnologijah, ki smo jih raziskali v prvem delu. Samo fazo izdelave bomo razdelili na dva večja dela. Najprej bomo izdelali program, ki bo skrbel za iskanje spletnih strani in posodabljanje podatkov obstoječih strani v bazi, drugi del pa bo skrbel za ustrezno vračanje informacij in razvrščanje rezultatov iz baze glede na uporabnikova vprašanja. Praktičnost rešitve bomo pokazali na več različnih primerih. Ker se je najbolj uporabljanim iskalnikom nemogoče približati, želimo izdelati spletni iskalnik, ki bi bil uporaben v določenih okoljih, kot je iskanje po določenih oz. vnaprej definiranih spletnih straneh. Pokazali bomo, kako bi lahko izdelano rešitev uporabili, da bi vzpostavili različne tipe spletnih iskalnikov: globalni spletni iskalnik, ki išče po vseh spletnih straneh; lokalni spletni iskalnik, ki išče po določeni spletni strani in globalni iskalnik, ki temelji na moči spletnih strani na socialnih omrežjih.. Ker je proces izdelave spletnega iskalnika kompleksen, je pomembno, da veliko časa posvetimo predhodnemu raziskovanju obstoječih rešitev in si olajšamo izdelavo iskalnika. Ob končani izdelavi spletnega iskalnika bomo iskalnik še optimizirali in skušali iskalni čas približati najbolj popularnim spletnim iskalnikom.. 4.

(17) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Eden izmed ciljev magistrskega dela bo tudi ugotavljanje primerljivosti z ostalimi spletnimi iskalniki. Glavna vprašanja magistrskega dela so, ali lahko izdelamo spletni iskalnik, ki bi konkuriral obstoječim rešitvam, ali bomo lahko vračali podobne rezultate kot ostali spletni iskalniki in ali lahko rezultate vračamo v realnem času.. 1.3 Predpostavke in omejitve magistrskega dela V delu bomo predpostavili več predpostavk: Prva predpostavka je ta, da še vedno obstaja potreba po spletnih iskalnikih, ki bi vračali rezultate na inovativen način. Sicer je to področje že dobro pokrito, ampak so še vedno odprti trgi za manjše spletne iskalnike, ki bi se osredotočali na določen tip informacij oz. na določeno kategorijo. Naslednja predpostavka je, da bomo aplikacijo lahko izdelali s pomočjo znanja, ki smo ga pridobili na področju informatike. Spletni iskalnik bomo lahko razvili s pomočjo različnih spletnih in namiznih tehnologij, pri čemer bodo spletne tehnologije uporabljene za iskanje in prikaz rezultatov, namizne tehnologije pa za pridobivanje podatkov iz spletnih strani in za njihovo shranjevanje ter indeksiranje.. V magistrskem delu se bomo omejili na več faktorjev, saj je izdelava drugače preobsežna. Prva omejitev v magistrskem delu bo ta, da se bomo omejili na količino podatkov, ki jih bomo zajeli. Na svetovnem spletu obstaja že okoli milijarda spletnih strani in nemogoče je, da naš sistem indeksira vse te strani. Za to bi potrebovali več sto porazdeljenih računalniških sistemov, kar bi nam vzelo veliko več časa, kot je pri izdelavi magistrskega dela smiselno. Zato se bomo omejili na pribl. 1 milijon rezultatov. Zaradi drugače preobsežnega dela se bomo omejili na angleški jezik in na enostavnejše iskalne nize oz. poizvedbe.. 5.

(18) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. 1.4 Raziskovalna vprašanja in hipoteze Pomembna raziskovalna vprašanja na katera bomo poizkušali odgovoriti: 1. Ali je mogoče v sklopu magistrskega dela izdelati spletni iskalnik, ki bi konkuriral obstoječim rešitvam? 2. Kakšne algoritme uporabljajo iskalniki za določanje pozicij spletnih strani glede na uporabnikov iskalni niz? 3. Kakšne principe in tehnike podatkovnega rudarjenja uporablja Google? 4. Ali lahko razvijemo rešitev, ki bi vračala relevantne in kakovostne podatke v sprejemljivem času? 5. Kako bomo zagotovili vračanje relevantnih podatkov glede na uporabnikov iskalni niz? 6. Na kakšen način bomo hranili več milijonov rezultatov spletnih strani? 7. Kako lahko izboljšamo oz. optimiziramo iskalnik?. 1.5 Uporabljene metode raziskovanja Pri preučevanju obstoječih rešitev in njihovih algoritmov bomo pri izdelavi magistrskega dela uporabljali literaturo katero bomo našli na svetovnem spletu. Za pomoč pri razvoju sistema za podatkovno rudarjenje in indeksiranje bomo po potrebi poiskali strokovne članke in knjige.. Raziskovalno delo bo izhajalo iz dveh delov. V teoretičnem delu bomo najprej preverili obstoječe spletne iskalnike, algoritme in tehnike, ki jih uporabljajo. Ter preverili podobnosti med njimi. Izpostavili bomo pomembne funkcionalnosti posameznih iskalnikov in jih poskusili implementirati v tehničnem delu.. V tehničnega delu pa bomo s pomočjo načrtovanja izdelave, implementacije in optimizacije uspešno izdelali končni izdelek – spletni iskalnik.. 6.

(19) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Uporabili bomo sistematični pregled literature, s pomočjo katerega bomo pregledali stanje in delovanje aktualnih spletnih iskalnikov in algoritmov, ki jih uporabljajo. Izdelan spletni iskalnik bomo tudi primerjali z podobnimi rešitvami. Za konec bomo še izpostavili prednosti in pomanjkljivosti izdelane rešitve.. 7.

(20) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. 2 SPLETNI ISKALNIKI Spletni iskalnik je sistem oz. spletno orodje, ki uporabnikom omogoča iskanje informacij na svetovnem spletu. V grobem lahko spletne iskalnike delimo na splošne in specializirane. Rezultati uporabnikovega iskanja so običajno predstavljeni v zaporednem nizu zadetkov, razvrščenih po relevantnosti.. Vodilni spletni iskalniki uporabljajo avtomatizirane in posebej prilagojene namizne aplikacije oz. orodja, ki jih imenujemo roboti (ang. robots) ali pajki (ang. spiders), ki brskajo po spletu in iščejo povezave do novih spletnih strani, ki jih nato tudi obiščejo, iz njih pridobijo uporabne informacije in jih shranijo v svojo bazo podatkov (Slika 2.1).. Slika 2.1 Delovanje spletnih iskalnikov. Vir: http://www.ramstondigital.com/seo/how-does-search-engines-work/. Informacije, ki jih pajki pridobijo, se dodajo v iskalni indeks, ki ga spletna stran uporablja, da lahko uporabniku vrne relevantne informacije glede na njegov iskalni niz. Ti iskalni nizi so lahko sestavljeni iz ene besede ali večjih in kompleksnejših oblik, kot je združevanje več. 8.

(21) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. besed ali uporaba naprednih iskalnih opcij, kot so simboli (npr. iskalni niz »magistrsko delo« bo vrnil rezultate, ki se ujemajo z natančno to besedno zvezo) ali iskalni operatorji (npr. z uporabo operatorja »site:« bi za iskalni niz »site:um.si« dobili vrnjene vse rezultate, ki se nahajajo na določeni spletni strani ali domeni).. Spletni iskalniki lahko temeljijo tudi na podlagi programskih vmesnikov (ang. API – Application Programming Interface) oz. storitev, ki jih posamezni obstoječi iskalniki ponujajo in omogočijo uporabnikom, da si ustvarijo svoj spletni iskalnik. Takšne iskalnike imenujemo meta-iskalniki. Primer meta-iskalnika je Googlovo iskanje po meri (ang. Google Custom Search), prikazano na sliki 2.2, ki omogoča, da si ustvarimo spletni iskalnik za našo spletno stran ali blog.. Slika 2.2: Primer poljubnega iskalnika. Vir: https://www.howtogeek.com/124703/how-to-create-your-own-custom-googlesearch-engine. Ko vpišemo naš iskalni niz, spletni iskalniki dejansko ne iščejo po spletu. Vsi rezultati, ki jih vidimo, so predhodno shranjeni in s pomočjo kompleksnega procesa razvrščeni v različne iskalne indekse, ki vračajo rezultate ob uporabnikovem vnosu iskanega niza.. Spletni iskalnik lahko išče le po podskupini spleta, ki jo je zajel in vključil v svojo bazo podatkov. Ta podskupina podatkov je seveda odvisna od količine podatkov, ki pa je odvisna od tega, na kakšen način in kako pogosto so ti podatki posodobljeni.. 9.

(22) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Največji spletni iskalniki imajo indekse, podobne tistim v knjižnicah. Ker imajo velik del spleta shranjen v masovnih indeksih, je potrebno, da hitro vrnejo ustrezne rezultate glede na dano besedo ali niz. Razlike v spletnih straneh v smislu sestave, kakovosti in vsebine so veliko večje od samega obsega neobdelanih podatkov. Splet sam po sebi nima poenotene strukture z vsebino, veliko širšo in bolj kompleksno kot tradicionalne zbirke besedilnih dokumentov [1].. Splet danes sestavlja več kot 300 milijard posameznih strani, tudi po več tisoč strani na eni sami domeni. Spletni iskalniki iščejo nove spletne strani, ki jih še niso obiskali, da lahko iz njih pridobijo nove informacije in te nove spletne strani dodajo v svoj iskalni indeks. Spletni iskalniki oz. njihovi pajki iščejo nove spletne strani tako, da neprestano pridobivajo povezave na nove strani na že najdenih in obiskanih straneh. Poleg tega, da iščejo nove strani, svoj indeks tudi redno posodabljajo tako, da najpopularnejše spletne strani obiščejo tudi večkrat dnevno v primeru, da bi ta spletna stran vsebovala nove informacije.. Pajki začnejo svoje potovanje z listo najpopularnejših spletnih strani. Pajek bo ob obisku spletne strani iz nje pridobil vse potrebne podatke in sledil vsaki povezavi, ki jo bo našel. Najbolj primerna spletna stran je v tem primeru lahko spletno socialno omrežje, ki ima javno dostopne podatke in seveda uporabniško generirano vsebino. Primer takšne spletne strani je Reddit.com, ki vsebuje na tisoče povezav do ostalih spletnih strani.. Po samem izgledu so iskalniki pogosto vizualno zelo enostavni in se med seboj ne zelo razlikujejo. Iskalniki tudi vsebujejo splošne informacije o iskalniku in vnosno polje, kamor vpišemo iskalni niz. Ob iskanju dobimo vrnjene rezultate, za katere iskalnik meni, da so za nas najbolj primerni. Slika 2.3 prikazuje primer izgleda vrnjenih rezultatov za iskalnik Google.. 10.

(23) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Slika 2.3: Primer vrnjenih rezultatov za iskalni niz »FERI«.. Rezultati so del kompleksnih procesov. Ti procesi se neprestano izvajajo v ozadju spletnega iskalnika in ves čas posodabljajo svoj indeks. Indeksiranje poskrbi za razvrščanje rezultatov glede na pomembnost spletne strani, ki se izračuna s pomočjo različnih faktorjev.. Poleg vodilnih spletnih iskalnikov, kot so Google, Yahoo in Bing, ki indeksirajo večinski del spleta, obstaja več specializiranih spletnih iskalnikov, ki indeksirajo določeno podmnožico spleta oz. določen tip spletnih strani. Obstajajo npr. iskalniki, ki omogočajo iskanje po slikah, datotekah, glasbi, knjigah in video posnetkih. V tabeli 2.1 smo prikazali primerjavo med najbolj uporabljenimi iskalniki, katerih podatki so bili javno dostopni.. 11.

(24) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Tabela 2.1: Primerjava spletnih iskalnikov. Vir: https://en.wikipedia.org/wiki/Comparison_of_web_search_engines Iskalnik. Podjetje. Licenca. Baidu Baidu Zaščitena Bing Microsoft Zaščitena DuckDuckGo DuckDuckGo Mešano. Indeksiranih Dnevnih strani poizvedb Neznano 13,5 milijard Neznano. Gigablast Google Search Soso.com YaCy. Neodvisno Alphabet Inc. Brezplačna 1 milijarda Zaščitena 40 milijard. Tencent Neodvisno. Zaščitena Neznano Brezplačna 1,4 milijarde. Yahoo! Search Yandex Search. Yahoo!. Zaščitena. 10 milijard. Neznano Neznano 15 milijonov Neznano 9,022 milijarde Neznano 0,13 milijona Neznano. Yandex. Zaščitena. > 2 milijardi. Neznano. Prikaz števila rezultatov DA DA NE. Ima oglase?. DA DA. NE DA. NE DA. NE NE. DA. DA. DA. DA. DA DA Opcijsko. 2.1 Zgodovina spletnih iskalnikov Oče moderne tehnologije iskanja je Gerard Salton. Njegovi ekipi na Harvardu in Cornellu sta razvili pameten iskalni informacijski sistem. Je avtor knjige Teorija indeksiranja, ki pojasnjuje veliko njegovih testov, na katerih še vedno v veliki meri temelji iskanje [2].. Ted Nelson je leta 1960 ustvaril projekt Xanadu in leta 1963 skoval izraz hipertekst. Medtem ko je Nelson nasprotoval kompleksni kodi, nedelujočim povezavam in številnim drugim težavam, povezanim s tradicionalno HTML-kodo na spletu, veliko navdiha za ustvarjanje spleta izhaja iz njegovega dela [2].. ARPA (Advanced Research Projects Agency Network) je omrežje, ki je sčasoma pripeljalo do nastanka interneta.. 12.

(25) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Archie je bilo prvo orodje za iskanje na internetu, ki je nastalo leta 1990, ko ga je ustvaril Alan Emtage, študent na Univerzi McGill v Montrealu. Archie je postal baza spletnih datotek, ki je vračala informacije glede na uporabnikove poizvedbe [3].. Leta 1994 sta študenta Jerry Yang in David Filot na Stanfordovi Univerzi ustvarila Yahoo! Yahoo je bil prvotno seznam internetnih zaznamkov in imenik zanimivih lokacij.. Leta 1996 sta študenta Univerze Stanford Sergey Brin in Larry Page preizkušala BackRub, nov spletni iskalnik, ki je razvrščal spletne strani glede na relevantnost dohodnih povezav in priljubljenost. BackRun je nazadnje postal Google. Slika 2.4 prikazuje izgled beta različice iskalnika Google leta 1998 [2].. Leta 1998 je Goto.com predstavil sponzorirane povezave in plačano iskanje. Oglaševalci so tu podajali svoje ponudbe, da so bili nad ostalimi rezultati iskanja, ki jih je poganjal Inktomi. Goto.com je na koncu prevzel Yahoo.. Slika 2.4: Google leta 1998. Vir: https://googlesystem.blogspot.si/2011/06/google-discontinues-itsfirst.html#gsc.tab=0. 13.

(26) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Kasneje je Yahoo postal partner Googla in slednjemu omogočil, da je poganjal njihove organske rezultate namesto Inktoma. Pred tem je bil Google skoraj neznan. Po tem partnerstvu je Google postal vsem poznani spletni iskalnik. Leta 2009 sta moči združila Yahoo in Microsoft, ki poskušata znižati 70% delež Googla [4].. 2.2 Pregled obstoječih rešitev Poleg vsem znanih spletnih iskalnikov Google, Yahoo in Bing na spletu najdemo tudi več drugih spletnih iskalnikov, ki imajo manjšo bazo aktivnih uporabnikov, vendar kljub temu še vedno dnevno odgovarjajo na več milijonov iskanj, ki jih vnesejo uporabniki. Še bolj zanimivo je dejstvo, da manjši spletni iskalniki počasi, a zanesljivo dohitevajo Google, ki se mu tržni delež vsakoletno zmanjša za odstotek ali dva. Tržni delež spletnih iskalnikov za leto 2015 prikazuje slika 2.5.. Slika 2.5: Tržni delež spletnih iskalnikov za leto 2015. Vir: https://www.netmarketshare.com/search-engine-marketshare.aspx?qprid=4&qpcustomd=0&qpsp=2015&qpnp=1&qptimeframe=Y. 14.

(27) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Google je danes vodilni spletni iskalnik, ustanovljen pa je bil leta 1998. Slika 2.6 prikazuje logotip iskalnika Google. Njegova ustvarjalca sta bila Larry Page in Sergey Brin, ki sta ga začela izdelovati v garaži Susan Wojcicke in iskalnik najprej poimenovala BackRub. Kasneje sta ga poimenovala Google, ki je izpeljanka besede googol, tj. matematični izraz za število deset na stoto potenco. Podjetje Google Inc. je bilo ustanovljeno leta 1998, ko je Andy Bechtolsheim, soustanovitelj podjetja Sun, napisal ček v vrednosti 100.000 USD za Google Inc., ki do tistega trenutka še ni obstajal [5].. Google danes v povprečju procesira več kot 40.000 iskalnih poizvedb na sekundo, kar pomeni več kot 3,5 milijarde iskanj na dan in 1,2 bilijona iskanj na leto [6].. Leta 1999 je Google za obisk 50 milijonov strani potreboval en mesec, za kar danes potrebuje eno minuto [6].. Spletni iskalnik Google bomo uporabljali tudi za črpanje idej pri gradnji naše rešitve.. Slika 2.6: Spletni iskalnik Google. Vir: google.com. 15.

(28) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Bing je Microsoftov iskalnik, ki je bil izdan 28. maja 2009 (Slika 2.7). Bing izhaja iz prejšnjih iskalnikov, ki jih je razvil Microsoft (MSN, Windows Live in Live Iskanje), a se nikoli niso obdržali. Iskalnik temelji na njihovem asp.net okvirju za izdelavo spletnih strani.. Slika 2.7: Spletni iskalnik Bing. Vir: bing.com. Yahoo, logotip katerega je prikazan na sliki 2.8, je eno izmed vodilnih svetovnih internetnih podjetij, katerega začetek sega v leto 1994, ko sta študenta Jerry Yang in David Filo na Univerzi Stanford pisala svojo doktorsko disertacijo. Najprej sta ustvarila spletno stran, ki je uporabnike povezovala do najljubših spletnih strani Yanga in Fila. Stran se je takrat imenovala Jerryjev vodnik po svetovnem spletu [7].. Slika 2.8: Spletni iskalnik Yahoo. Vir: yahoo.com. 16.

(29) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. DuckDuckGo, prikazan na sliki 2.9, je spletni iskalnik, ki spoštuje zasebnost uporabnika in ne hrani njihovih podatkov. Zaradi tega nam ne sledi in ne prikazuje iskalnih rezultatov glede na našo trenutno lokacijo oz. naše zasebne interese. DuckDuckGo je zaradi tega vedno bolj popularen spletni iskalnik za tiste, ki jih skrbi njihova zasebnost.. Slika 2.9: Spletni Iskalnik DuckDuckGo. Vir: duckduckgo.com. 17.

(30) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. 3 DELOVANJE SPLETNIH ISKALNIKOV Spletni iskalniki delujejo v več korakih (Slika 3.1). Prvi korak, ki se začne pri vsakem spletnem iskalniku, tudi preden je iskalnik sploh javno dostopen, je zbiranje oz. pridobivanje podatkov. Avtomatiziran proces oz. pajek konstantno obiskuje nove spletne strani, iz katerih izlušči pomembne podatke in išče povezave do novih spletnih strani. Za pajka je pomembno, da izlušči vse pomembne podatke, ki se bodo uporabljali v naslednjih korakih. Ti podatki se shranijo v podatkovno bazo. Pajki veliko pomembnost namenijo novim spletnim stranem, ki jih še niso obiskali, obstoječim spletnim stranem in spremembah na njih ter povezavam, ki kažejo na nedelujoče spletne strani. Podatki se iz spletnih strani lahko pridobijo iz: •. vsebine (člankov in podstrani na spletni strani);. •. metapodatkov, ki pajkom olajšajo pridobivanje imena in kratkega opisa spletne strani.. V primeru, da metapodatki niso podani, mora pajek znati iz vsebine sam izluščiti pomembne podatke.. Slika 3.1: Proces delovanja spletnega iskalnika.. 18.

(31) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Drugi korak je indeksiranje podatkov. Indeksiranje je zelo kompleksen proces, ki skuša razumeti, kaj uporabnike zanima in katere rezultate želijo videti, ko vnesejo določen iskalni niz. Ker je na spletu več podstrani, mora iskalnik s pomočjo kompleksnih faktorjev določiti pomembnost posamezne strani. Takšni faktorji so starost domene, hitrost nalaganja spletne strani, ali ima spletna stran podvojene podatke, število tujih strani, ki vsebujejo povezave na določeno stran itd.. Tretji korak pa je omogočanje iskanja končnim uporabnikom. Ta korak je tudi edini, ki ga končni uporabnik dejansko lahko vidi. Pomembno je hitro (v nekaj 100 milisekundah) in pregledno (običajno v obliki zaporednih zapisov, razvrščenih po vrstnem redu pomembnosti) vračanje podatkov.. 3.1 Tehnike za pridobivanje podatkov Splet danes sestavlja več kot 30 milijard posameznih strani in če želimo imeti kvaliteten spletni iskalnik, mora naš pajek večino teh strani obiskati. Poleg tega, da potrebujemo učinkovito programsko kodo, ki bo ves čas skrbela za nemoteno delovanje pajkov, potrebujemo tudi več sto ali celo tisoč strežnikov, ki bodo med seboj komunicirali pri iskanju in indeksiranju novih spletnih strani. Podatki, ki jih pajki pridobijo, so kompleksni in v primeru, da spletna stran ne vsebuje meta značk, mora pajek sam znati izluščiti te podatke iz spletne strani.. Čeprav je plazenje (ang. crawling) dejansko zelo hiter proces, pajek konceptualno počne isto kot uporabnik, ki surfa po internetu. Pajek izda zahtevo (ang. GET) za pridobitev strani in njene vsebine, nato pa poišče vse povezave na strani, ki jih doda v čakalno vrsto za nadaljnje iskanje. Ker pajek prenaša izključno samo izvorno kodo strani in ne slik ter ostalih datotek, je običajno zelo hiter [1].. Pajek mora na začetku delovanja obiskati določeno spletno stran, iz katere pridobi nove povezave, ki jih bo lahko obiskal. Kot primer prve strani je pametno podati spletno stran, ki. 19.

(32) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. ima veliko povezav na ostale strani (npr. spletno socialno omrežje z javno dostopnimi podatki ali spletno povezavo, ki prikazuje rezultate iskanja na obstoječem spletnem iskalniku – npr. Google). Iskalniki morajo svoje baze podatkov neprestano posodabljati. Bolj kot je baza podatkov posodobljena, boljši bodo rezultati iskanj in večja bo zadovoljnost uporabnikov pri iskanju. Zato mora pajek razdeliti svoje vire preko številnih strežnikov, s katerimi komunicira, in preverjati, katere strani so že bile obiskane in katere še morajo biti.. Iskalniki morajo ob obisku posamezne strani poleg pridobitve novih povezav tudi izluščiti pravilne podatke.. 3.1.1 Meta oznake. Meta oznake so odličen način za lastnike spletnih strani, da iskalnikom zagotovijo informacije o njihovih spletnih straneh. Meta oznake se lahko uporabljajo za zagotavljanje informacij različnim klientom in vsak sistem procesira le meta oznake, ki jih razume. Meta oznake se dodajo v glavo (<head>) strani v izvorni HTML kodi [8].. Poznamo več meta oznak. Nekaj najpomembnejših: •. Keywords – definiramo ključne besede za spletno stran.. •. Description – opis spletne strani.. •. Language – jezik spletne strani.. •. Author – ime in priimek avtorja spletne strani.. Kot primer smo na spletni strani fakultete zajeli sliko 3.2, ki vsebuje omenjene oznake.. Slika 3.2: Zaslonska slika meta oznak na strani Fakultete za elektrotehniko, računalništvo in informatiko.. 20.

(33) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. 3.1.2 OG oznake. OG oz. Open Graph protokol omogoča katerikoli spletni strani, da postane bogat objekt v socialnem diagramu. OG se uporablja na Facebooku, ki omogoča katerikoli spletni strani, da ima enako funkcionalnost kot katerikoli drug predmet na Facebooku [9].. Medtem ko obstaja veliko različnih tehnologij in shem, kot so npr. meta oznake, pa ne obstaja niti ena tehnologija, ki zagotavlja dovolj informacij za bogato predstavitev katerekoli spletne strani v socialnem diagramu [9].. Da lahko dodamo zgoraj omenjeno funkcionalnost na katerokoli spletno stran, moramo uporabiti 4 obvezne oznake: •. Og:title – predstavlja ime spletne strani.. •. Og:type – tip vira – ali gre za video posnetek, spletno stran itd. (npr: website, video).. •. Og:image – povezava do slike objekta, katerega stran opisuje.. •. Og:url – URL objekta.. Ker dandanes veliko spletnih strani vsebuje OG značke, jih lahko uporabimo pri pridobivanju pomembnih informacij iz spletne strani.. 3.1.3 Bonton pridobivanja podatkov iz spletnih strani. Ker pajki iz določenih spletnih strani istočasno in večkrat pridobivajo podatke, je pomembno, da se držimo osnovnih načel bontona pridobivanja podatkov oz. parsanja. V nasprotnem primeru bi naša rešitev lahko pokvarila izkušnjo za druge. Če ne bi identificirali večjih datotek (npr. video datotek ali dokumentov) in bi iz istega strežnika istočasno prenašali več različnih datotek, bi to lahko upočasnilo delovanje strežnika ali pa ga celo preobremenilo. V primeru kršenja osnovnih določil bi nas lahko strežnik, ki poganja spletno stran, tudi avtomatsko blokiral in našemu IP-naslovu onemogočil nadaljnje obiskovanje spletne strani.. 21.

(34) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Ob prenašanju izvorne HTML kode iz določene spletne strani moramo stran zaprositi za stisnjeno kodo (ang. gzipped code) in tako z zahtevami po nestisnjenih straneh ne brez potrebe porabljamo njihovo pasovno širino oz. spletni prenos.. Identificirajmo se – Pri prenosu dokumentov s strežnika se moramo identificirati. Tako nas lahko lastniki spletnih strani v različnih primerih kontaktirajo. To izvedemo tako, da pri pošiljanju poizvedbe v glavi poizvedbe nastavimo vrednost atributa »user-agent«, da npr. vsebuje ime našega iskalnika in našo elektronsko pošto. Google v tem primeru uporablja ime »Googlebot«.. Upoštevajmo standard za izključitev robotov – datoteka robots.txt – Gre za standard, ki ga spletna stran uporablja za komunikacijo oz. postavljanje pravil spletnim robotom in pajkom. Čeprav se lahko temu zelo enostavno izognemo tako, da te datoteke na strežniku preprosto sploh ne odpremo in jo ignoriramo, je zelo pomembno, da to storimo, saj bi drugače lahko kršili pogoje storitve spletne strani in bi lahko bili blokirani. Upočasnjujmo zahteve – Pomembno je, da na določen manjši strežnik istočasno ne pošiljamo več zahtev. Čeprav večje strani z zmogljivimi distribuiranimi strežniki po celem svetu ne bodo imele večjih težav, pa bi lahko manjše strežnike nehote preobremenili, kar bi povzročilo njihov izpad. Zato je treba spremljati odzivni čas strežnika in v primeru, da se le-ta počasi odziva, omejimo istočasno iskanje po tej spletni strani – npr. ne več kot nekaj na sekundo.. Sestavimo listo spletnih strani, ki jih ne bomo obiskovali – V primeru, ko nas lastnik spletne strani prosi, da njegove strani ne obiskujemo več, jo lahko dodamo na seznam blokiranih strani in jo bo pajek preskočil.. Uporabljati moramo poizvedbe gzip – Tako lahko bistveno zmanjšamo porabo pasovne širine (ang. bandwidth) na strežniku in tudi pohitrimo delovanje samega rudarjenja podatkov. V določenih primerih je velikost dokumenta s kompresijo gzip tudi do 85 % manjša [10].. 22.

(35) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. 3.2 Indeksiranje in razvrščanje podatkov Čeprav je pridobivanje podatkov iz spletnih strani in njihovo shranjevanje povsem samoumeven proces, pa je indeksiranje v večini primerov poslovna skrivnost lastnikov spletnega iskalnika. Čeprav poznamo faktorje, ki se uporabljajo za razvrščanje spletnih strani, vseeno ne moremo vedeti, kako točno največji iskalniki razvrščajo rezultate, saj ti podatki niso javno dostopni. Vemo, da ko bo uporabnik v iskalnik vnesel niz, ki ga zanima, bo iskalnik najprej poiskal predhodno pripravljen indeks, ki bo vrnil rezultate glede na iskalni niz. Vsaka stran v tej listi rezultatov je morala biti predhodno obiskana in uvrščena v ustrezen indeks glede na podatke, ki jih vsebuje, in glede na uporabnikov iskalni niz. Spletni iskalniki poleg enostavnih poizvedb omogočajo tudi iskanje po njihovih posebnih operatorjih oz. parametrih. Z njimi lahko filtriramo rezultate.. Googlovo kazalo ima več kot 100.000.000 gigabajtov in za njegovo sestavo so porabili več kot milijon računalniških ur. Splet je kot stalno rastoča javna knjižnica z več milijardami knjig in brez osrednje uprave. Google med iskanjem po vsebini zbira strani in ustvari kazalo, tako da natančno vemo, kako iskati. Googlovo kazalo vsebuje podatke o besedah in njihovem mestu, podobno kot kazalo na koncu knjige. To pomeni, da njihovi algoritmi med iskanjem v kazalu poiščejo iskalne izraze in s tem ustrezne strani [11].. 3.2.1 Faktorji razvrščanja spletnih strani. Različni iskalniki v svojem indeksu različno razvrščajo rezultate glede na iskalni niz. Na spletnih straneh je vsebina oz. besedilo za iskalnik glavnega pomena, saj iskalnikom omogoča pravilno razvrščanje spletne strani in pomaga odgovarjati na vprašanja, kot so: Katere so ključne besede? Kako koristna je spletna stran za končnega uporabnika? Ali se stran redno posodablja? Ali ima spletna stran unikatno vsebino?. 23.

(36) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. V samo odločitev lahko gre tudi nekaj 100 različnih faktorjev, ki jih iskalnik upošteva. Nekaj teh faktorjev bomo tudi sami uporabili pri izdelavi spletnega iskalnika. Omejili se bomo na tiste enostavnejše, saj v sklopu magistrskega dela ne moremo implementirati vseh. Za takšno implementacijo so vodilni spletni iskalniki potrebovali več let, saj so skozi leta sledili trendom in to še vedno počnejo. Čeprav vsi faktorji niso javno znani, pa obstaja nekaj splošno znanih faktorjev, ki jih uporabljajo različni iskalniki.. Starost domene spletne strani – Starost domene spletne strani predstavlja število dni od takrat, ko je lastnik spletne strani zakupil svojo domeno. Predvsem se lahko uporablja tako, da se dodatno izogibamo zlorabam, ko bi nepridiprav v kratkem času kupil novo domeno, postavil spletno stran in skušal izigrati sistem, da bi hitro osvojil najvišje iskalne pozicije. Ali se ključna beseda pojavi v domeni oz. naslovu strani – To je ob določenih iskanjih pomemben faktor, saj odloča, ali je spletna stran relevantna glede na iskani niz. Npr. če bi uporabnik vnesel niz »FERI«, bi se ključna beseda pojavila tako v domeni spletne strani (feri.um.si) kot tudi v naslovu (FERI – Fakulteta za elektrotehniko, računalništvo in informatiko), kar iskalnikom pomaga uvrstiti spletno stran med najvišje rezultate. Javni ali zasebni podatki o lastniku domene (ang. whois) – Na spletu lahko vsakdo preveri, kdo je lastnik določene domene, in tako vidi njihove osebne podatke. Ker registri domen omogočajo kupcem različne opcije zasebnosti, lahko uporabniki na ta način te osebne podatke tudi skrijejo. Spletni iskalniki ta podatek uporabljajo, da dodatno ugotovijo legitimnost spletne strani. Čeprav to v veliko primerih ne drži, pa je vseeno podatek, ki lahko predvideva, ali nekdo nekaj skriva in ali so njegovi nameni legitimni. Uporabniška izkušnja – Iskalniki v zadnjih letih dajejo vedno večji vpliv uporabniški izkušnji. Z njo so tesno povezani drugi faktorji, kot je hitrost nalaganja spletne strani, optimiziranost za mobilne telefone, ali spletna stran uporablja modernejše standarde, ali spletna stran vsebuje veliko nezaželene vsebine, kot je pretirano število oglasnih pasic in pojavnih oken (ang. popup) itd.. 24.

(37) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Dolžina dokumenta – Dolžina dokumenta je pomembna tako za hitrost nalaganja strani kot določitev, ali je stran napolnjena z nezaželenim besedilom. V želji po višjih rezultatih v iskanjih bi lahko lastniki spletnih strani napolnili svoje strani z nepotrebnim besedilom, ki nima povezave s spletno stranjo in ki za uporabnika ne bi bilo videno, kar pa bi pajki vseeno prepoznali kot del spletne strani. Hitrost nalaganja strani – Dobra uporabniška izkušnja je zelo pomembna. Ker s pomočjo umetne inteligence težko določimo, ali je določena spletna stran uporabniško prijazna, je hitrost nalaganja strani eden izmed faktorjev, ki nam lahko pri tem pomaga. V primeru, da se bo stran hitro naložila, je verjetno, da bo tudi uporabniku prijaznejša in bolj optimizirana.. Podvojeni podatki – Google rad kaznuje spletne strani, ki direktno kopirajo in kradejo vsebino iz drugih spletnih strani. To nakazuje na nelegitimnost spletne strani in če takšna stran vsebuje večino kopiranega besedila, obstaja velika verjetnost, da bo kaznovana in izbrisana iz indeksa oz. bo tako zelo nizko med rezultati, da je ne bo mogoče najti. Kakovost in pogostost posodabljanja podatkov – Stalno posodabljanje spletne strani z novimi informacijami in viri bo pomagalo pri uvrščanju spletne strani med višje rezultate. To pomeni, da je stran aktivna in da jo lastniki redno posodabljajo. Pravopisne napake – Pravopisne napake so lahko zelo pomemben faktor, saj lahko iskalniki tako hitreje izločijo vse spletne strani, ki imajo slabo napisano besedilo.. Jezik – V primeru, da spletni iskalnik omogoča iskanje v več jezikih, je detekcija jezika spletne strani zelo pomembna. Na ta način bomo ob iskanju iskalnega niza v slovenskem jeziku dobili vrnjene rezultate v slovenščini in ob iskanju v angleščini dobili rezultate v angleščini.. Certifikat SSL – Gre za standard varnostne tehnologije za vzpostavitev šifrirane povezave med spletnim strežnikom in brskalnikom. Ta povezava zagotavlja, da so vsi podatki med spletnim strežnikom in brskalniki zasebni [12]. Certifikati SSL so dandanes skoraj obvezni in. 25.

(38) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. v primeru, da spletna stran takšnega certifikata ne uporablja, se lahko to pozna pri razvrščanju.. Optimiziranost za mobilne telefone – V časih, ko mobilni telefoni prevladujejo, sta optimiziranost in ponujanje strani v obliki za mobilne naprave zelo pomembna. Iskalniki bodo ob uporabnikovem iskanju na mobilnem telefonu izločili rezultate, ki niso optimizirani za mobilne telefone.. Število povezav na spletno stran – To je eden glavnih pokazateljev popularnosti in koristnosti spletne strani. Ker imajo največji iskalniki podatke o večini spletnih strani na svetovnem spletu in o tem, katere povezave na druge strani se nahajajo na določeni strani, lahko določijo, koliko povezav kaže na določeno spletno stran ali domeno. Več kot je povezav, višje bo stran v iskalnih rezultatih. Uporabnost strani – Ker so spletni iskalniki obiskali na milijone različnih spletnih strani, lahko hitro določijo, ali je spletna stran za končnega uporabnika uporabna in ali ima dodano vrednost. Število delitev strani na socialnih omrežjih – Ta faktor se v konkurenčnih spletnih iskalnikih načeloma ne upošteva. Čeprav je nemogoče vedeti, ali se pravzaprav res uporablja ali ne, saj te informacije niso javne, pa raziskave kažejo, da večja prisotnost na socialnih omrežjih ne izboljša pozicij v rezultatih iskanj. Zaradi želje po edinstvenosti končane rešitve smo se odločili, da bo pri izdelavi našega iskalnika ta faktor močno vplival na odločitve pri razvrščanju posameznih strani.. 3.2.2 Obravnavanje nezaželenih spletnih strani. Vsi glavni spletni iskalniki vračajo rezultate, razvrščene glede na različne faktorje, ki smo jih omenili. Rezultati so tako razvrščeni glede na to, kaj spletni iskalnik meni, da so najkoristnejše informacije za uporabnika. Ker je faktorjev razvrščanja spletnih strani veliko, nepridipravi z željo po višjih pozicijah v rezultatih to izkoriščajo v svoj prid in skušajo na. 26.

(39) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. nepravičen način ogoljufati pajke ter svojo spletno stran prikazati kot veliko bolj pomembno, kakor v resnici je. Čeprav za doseganje tega poznamo legitimen način – optimizacija spletnih strani (ang. white-hat SEO), pa obstaja tudi prej omenjeni manj legitimen način (ang. black-hat SEO).. Legitimne tehnike za optimizacijo spletne strani so: •. Kakovost vsebine;. •. Naslovi in metapodatki;. •. Efektivna uporaba in iskanje ključnih besed;. •. Kvalitetne povezave na spletno stran;. •. Uporabnikom prijazna spletna stran.. Med nelegitimne tehnike za optimizacijo spletne strani uvrščamo: •. Uporabo ključnih besed, ki s spletno stranjo niso povezane.. •. Podvojeno vsebino, prekopirano iz drugih spletnih strani.. •. Skrite povezave na spletni strani.. •. Besedilo, ki je uporabnikom skrito, a ga pajki vseeno vidijo.. •. Izdelavo novih spletnih strani, ustvarjenih z namenom dodajanja povezav na drugo ciljno stran, ki jo imamo v lasti.. •. Nekvalitetne povezave na spletno stran.. Google v primeru, da najde spletne strani, ki uporabljajo zgoraj naštete nelegitimne tehnike, takšne strani kaznuje in jih s pomočjo algoritmov ali ročne ocene izloči iz svojih rezultatov iskanja ali pa jo med rezultati prikazuje nižje kot sicer. Googlove smernice za spletne skrbnike Izogibajmo se naslednjim tehnikam [13]: •. Avtomatsko ustvarjena vsebina;. •. Sodelovanje v shemah povezav;. •. Ustvarjanje strani z malo ali brez izvirne vsebine;. •. Prikrite preusmeritve;. •. Skrito besedilo ali povezave;. •. Sodelovanje v partnerskih programih brez dodajanja vrednosti;. •. Nalaganje strani z nepomembnimi ključnimi besedami.. 27.

(40) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Upoštevajmo dobre prakse, kot so: •. Spremljajmo naše spletne strani in v primeru vdora v spletno stran odstranimo nezaželeno vsebino takoj, ko se pojavi.. •. Preprečujmo in odstranjujmo nezaželeno uporabniško ustvarjeno vsebino.. Če bi spletna stran kršila zgoraj navedene smernice, jo lahko Google kaznuje.. 3.3 Poizvedbe 3.3.1 Predvidevanje iskanja. Google in ostali popularnejši iskalniki ponujajo funkcijo predvidevanja iskanja oz. samodokončanja (ang. autocomplete). Predvidevanja predstavljajo možne rezultate oz. iskalne nize, ki jih morda želimo vnesti in katere so drugi uporabniki že iskali. Tako lahko določene informacije in odgovore z uporabo samodokončanja najdemo hitreje.. Googlova funkcija za samodokončanje je postala tako vseprisotna, da je kot uporabniki skorajda ne opazimo več. Začnemo z vnašanjem besedne zveze v iskalno vrstico, nakar nam iskalnik priporoča peščico možnih dopolnitev, izmed katerih nedvomno vključuje tisto, ki je povezana z našo namero [14].. Predvidevana iskanja izhajajo iz [15]: •. izrazov, ki jih vnašamo;. •. tega, kaj vnašajo drugi uporabniki, vključno s priljubljenimi iskanji;. •. relevantnih iskanj, ki smo jih opravili v preteklosti.. Predvidevanja so generirana na podlagi objektivnih dejavnikov (npr. kako pogosto smo iskali določeno besedo) in so zasnovana tako, da odražajo obseg informacij na spletu. Zaradi tega so ponujeni iskalni nizi včasih lahko čudni ali presenetljivi.. 28.

(41) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Običajno predvidevanje iskanja deluje tako, da preveri črke, ki smo jih že vnesli in poišče vse besede, ki se začnejo s temi črkami. Določeni iskalniki nam tudi omogočajo vnos samo dela besede in nam na izbiro ponudijo celoten stavek.. 3.4 Nabori podatkov in big data Podatke shranjujemo tako, da uporabljamo podatkovne baze. Vendar kaj storimo, ko podatki obsegajo več terabajtov in posledično strežniki nimajo dovolj velike kapacitete? Pri shranjevanju informacij takšnega obsega, bi pri kapaciteti osebnega računalnika hitro ostali brez prostora na disku. Kaj storimo, če se takšen strežnik sesuje? Potrebovali bi zmogljivo podatkovno bazo, ki bi omogočila njeno porazdeljenost po več sistemih. Takšna baza mora omogočati nemoteno delovanje ostalih sistemov, tudi v primeru izpada. V takšnih okoliščinah tradicionalne relacijske zbirke podatkov niso dovolj.. Relacijska zbirka podatkov ali zbirka dokumentov Glavni razlog za izbiro zbirke podatkov (poznane kot NoSQL baze) v zadnjih letih je dostopnost. Za podjetja, kot so Amazon, Google in Facebook že enourni izpad pomeni ogromno izgubo. Za doseganje visoke razpoložljivosti, potrebujemo porazdeljen sistem, ki vsebuje večje število strežnikov. V primeru, da se kateri računalnik poruši, bo storitev še vedno dosegljiva [16].. Tradicionalne relacijske baze podatkov se v porazdeljenih situacijah ne obnesejo najbolje. To je razlog zakaj so NoSQL baze podatkov tako priljubljene [16]. Google je razvil svoj porazdeljen sistem za strukturirano shranjevanje podatkov, ki ga imenujejo BigTable. Zasnovan je tako, da lahko obsega ogromne količine podatkov, tudi do več petabajtov. BigTable je distribuirana, obstojna in večdimenzionalna sortirana mapa [17].. Številni projekti pri Googlu shranjujejo podatke s pomočjo sistema BigTable, vključno s spletnim indeksiranjem, Google Earthom in Google Finance [17].. 29.

(42) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. 4 IZDELAVA SPLETNEGA ISKALNIKA V tem delu bomo opisali proces izdelave spletnega iskalnika. Izpostavili bomo tudi vse funkcionalnosti, ki so bile dodane pri izdelavi.. Pri izdelavi spletnega iskalnika smo precej časa namenili pregledu obstoječih rešitev in algoritmov, ki jih uporabljajo. Prvotno smo želeli v naš sistem vpeljati že obstoječe algoritme, ki jih uporabljajo drugi iskalniki, vendar smo se na koncu odločili, da razvijemo lastne. Ugotovili smo, da je proces indeksiranja spletnih strani pri Googlu in ostalih večjih iskalnikih nepoznan, saj je to poslovna skrivnost. Pri ugotavljanju celotnega procesa iskalnikov nam je pomagala strokovna literatura, ki opisuje različne faktorje, ki jih giganti uporabljajo. Nekaj pomembnejših faktorjev smo tudi uporabili pri implementaciji naše rešitve.. Samo izdelavo iskalnika smo razdelili na dva dela. Prvi del je vključeval izdelavo pajka. Ustrezna konzolna aplikacija na svetovnem spletu išče nove spletne strani in iz njih pridobi informacije, ki jih shranjuje v bazo podatkov. Za izdelavo konzolne aplikacije smo uporabili programski jezik C#, za podatkovno bazo pa smo uporabili MongoDB, ki temelji na principu shranjevanja dokumentov. Drugi večji del se je osredotočal na izdelavo spletne strani, ki omogoča iskanje po indeksiranih podatkih, ki smo jih pridobili v prvem koraku. Spletna stran skrbi tudi za prikazovanje podatkov na uporabniško prijazen način. Za izdelavo smo uporabili programsko okolje .NET C# MVC za ozadje (ang. backend) spletnega iskalnika, ter angularjs, HTML5 in CSS za predstavitveni (ang. frontend) del iskalnika.. Pri razvijanju spletne aplikacije smo želeli obdržati tradicionalen izgled spletnih iskalnikov in obenem upoštevati principe modernih spletnih strani.. 30.

(43) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Izdelali smo iskalnik, ki je uporabnikom prijazen. Z uporabo javascript tehnologij uporabnikom ob vnašanju iskalnega niza poskušamo predlagati celoten iskalni niz, ki ga uporabnik trenutno vnaša oz. bi ga znal zanimati. Z izdelavo odzivnega dizajna (ang. responsive design), ki prilagodi postavitev strani glede na uporabnikovo napravo in ločljivost zaslona, zagotovimo dostopnost iskalnika na vseh mobilnih napravah (tablicah, mobilnih telefonih, osebnih računalnikih in drugih napravah povezljivih s spletom).. Pri izbiri podatkovne baze smo se odločili uporabiti MongoDB. Gre za podatkovno bazo, ki temelji na dokumentih. Od SQL baze podatkov se razlikuje od tega, da se izogiba tradicionalnim tabelam, ki temeljijo na relacijah in raje uporablja dokumente, podobne JSON dokumentom, ki omogočajo dinamično definirane sheme. Zaradi tega postane planiranje in integracija podatkov enostavnejša, fleksibilnost pa večja. S pomočjo dokumentno orientiranih baz lahko enostavneje postavimo vodoravno razširljive strežnike ter postavimo baze na cenovno ugodnejše strežnike.. Rezultate prikazujemo na podoben način kot tradicionalni spletni iskalniki, torej razvrščene po pomembnosti, kjer je na prvem mestu rezultat za katerega menimo, da je za uporabnika najpomembnejši. Slika 4.1 prikazuje izgled izdelane rešitve.. Slika 4.1: Izgled izdelanega spletnega iskalnika.. 31.

(44) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Pri izdelavi dela za indeksiranje smo se osredotočili na več faktorjev. Ker smo želeli predstaviti različne faktorje, ki se uporabljajo pri iskanju in razvrščanju spletnih strani smo le-teh implementirali več.. Izdelana rešitev je oblikovana tako, da lahko v konfiguraciji izberemo katere faktorje želimo, da iskalnik uporablja. Definiramo lahko tudi kako bo omejeno njegovo indeksiranje in posledično iskanje (npr. iskanje samo po določenih domenah, pod-domenah in naslovih – npr. https://feri.um.si; iskanje po določenih vrhnjih internetnih domenah – npr. po vseh slovenskih .si domenah, iskanje po vseh spletnih straneh, itd. ).. Implementirali smo dve različni rešitvi: •. Lokalni spletni iskalnik, ki išče po spletni strani fakultete in prikazuje rezultate glede na ujemanje iskalnega niza.. •. Globalni spletni iskalnik, ki išče po vseh spletnih straneh in rezultate razvršča glede na moč spletne strani na socialnih omrežjih.. Lokalni spletni iskalnik Lokalni spletni iskalnik je omejen samo na določeno spletno stran. Odločili smo se izdelati iskalnik, ki bo iskal rezultate po spletni strani fakultete. Omejili smo se tako, da smo v konfiguraciji spletnega iskalnika nastavili spletno stran FERI kot prvo stran, ki jo pajek obišče. Potrebno je bilo tudi izklopiti možnost odkrivanja novih domen.. Globalni spletni iskalnik Ker smo želeli izdelati spletni iskalnik, ki na trgu še ne obstaja, smo se odločili kot enega izmed glavnih faktorjev pri razvrščanju uporabiti moč spletne strani na socialnih omrežjih. Tako smo za vsako spletno stran iz socialnega omrežja Facebook pridobili določene informacije (število delitev strani, število klikov na povezavo, število komentarjev in število »všečkov«) in Twitter (število tweetov, ki vsebujejo spletno stran). Poleg tega smo uporabili še pomembne faktorje kot je starost domene, ali spletna stran vsebuje OG značke, itd.. 32.

(45) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. 4.1 Funkcionalnosti Ker je v izdelavo vodilnih spletnih iskalnikov bilo vloženih več let in ker jih v ozadju podpira več tisoč strežnikov je nemogoče pričakovati, da bi v sklopu magistrskega dela lahko kakorkoli izdelali rešitev, ki bi konkurirala vodilnim iskalnikom.. Osredotočili smo se na izdelavo: •. Pajka, ki bo iskal nove spletne strani.. •. Programa za indeksiranje, ki bo rezultate razvrščal glede na iskalne nize.. •. Iskalnika, ki bo iskal rezultate v Angleškem jeziku.. 4.1.1 Iskanje. Glavna funkcionalnost, ki ob uporabnikovem vnosu iskalnega niza išče po bazi podatkov in vrača rezultate. Izdelali smo enostaven vmesnik za iskanje, ki s pomočjo API-jev komunicira z našo bazo.. 4.1.2 Faktorji razvrščanja spletnih strani. Pri izdelavi iskalnika smo največji poudarek dali na moč spletne strani na socialnih omrežjih. Ostali faktorji, ki se uporabljajo za razvrščanje spletnih strani so: •. Starost domene spletne strani;. •. Ali se ključna beseda pojavi v naslovu, domeni ali besedilu;. •. Velikost dokumenta;. •. Hitrost nalaganja strani;. •. Stopnja prilagojenosti za mobilne telefone;. •. Popularnost na socialnih omrežjih.. 33.

(46) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. 4.1.3 Zgodovina spletne strani. Ko uporabnik med vsemi vrnjenimi rezultati klikne na določen zadetek je občasno mogoče, da je ta spletna stran trenutno nedosegljiva. Razlog je, da pajek predčasno obišče spletno stran in jo hrani v svoj indeks kot jo uporabnik obišče. Zato smo se odločili, da pajek ob obisku spletne strani shrani celotno prenešeno spletno stran, v primeru njenega izpada. Na ta način si lahko uporabnik ogleda zadnjo različico spletne strani, ko je le-ta še bila dosegljiva. To funkcionalnost omogoča tudi Google in je lahko zelo uporabna. Primerjava shranjene spletne strani Facebook je prikazana na sliki 4.2.. Slika 4.2: Primer shranjene strani Facebook, ki sta jo shranila naša rešitev in iskalnik Google.. 4.1.4 Zgodovina iskanja. Zgodovina iskanja deluje tako, da uporabniku pred njegovim iskanjem ponudi njegove zadnje iskalne nize. Zgodovina je shranjena lokalno na predstavitvenem (ang. frontend) nivoju rešitve zato, da celotne zgodovine iskanja ne vidijo ostali uporabniki.. Drugi način delovanja zgodovine iskanja je, da uporabniku ob vnosu dela iskalnega niza priporočamo nekaj najbolj iskanih nizov, ki se ujemajo njegovemu trenutnemu nizu (npr.. 34.

(47) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. če uporabnik v iskalno polje vnese »fakult« mu bo iskalnik avtomatsko priporočal iskalni niz »Fakulteta za elektrotehniko, računalništvo in informatiko«).. 4.2 Algoritmi za indeksiranje in razvrščanje podatkov V tem delu bomo opisali izdelavo pajka oz. konzolne aplikacije, ki obiskuje nove spletne strani in rezultate shranjuje v bazo podatkov. Algoritem, ki smo ga napisali za samo pridobivanje podatkov temelji na osnovni logiki pajkov, ki konstantno obiskujejo nove spletne strani, ko le-te odkrijejo. Samo pridobivanje in indeksiranje podatkov iz spletnih strani je razdeljen na dva večja dela.. Da lahko iz spleta sploh pridobimo podatke moramo najprej odkriti nove spletne strani. Lete najdemo tako, da temeljito preiščemo obstoječe spletne strani, ki jih poznamo. Program potrebuje eno samo začetno spletno stran, s pomočjo katere potem najde nove spletne strani. To stori tako, da na trenutni spletni strani poišče vse povezave na ostale strani in podstrani. Za začetek je bilo pomembno, da smo izbrali spletno stran, ki ima veliko povezav na ostale spletne strani in, da so povezave na podstraneh različne od tistih na prvi strani. Najbolj primerna spletna stran je v tem primeru spletno socialno omrežje, ki ima javno dostopne podatke in seveda uporabniško generirano vsebino.. Najprej smo se lotili postavitve temeljev aplikacije: •. Ustvarili smo vse razrede, ki so uporabljeni pri shranjevanju podatkov v bazo.. •. Spisali smo funkcije za iskanje povezav in preverjanje ali so povezave pravilne.. •. Spisali smo funkcije za pridobivanje izvorne kode strani.. •. Pripravili funkcije za branje in vstavljanje podatkov iz in v bazo.. •. Poiskali API-je, ki smo jih uporabljali za pomoč pri razvrščanju spletnih strani.. •. Spisali funkcije za iskanje meta in OG značk in luščenje podatkov iz teh elementov.. 35.

(48) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. 4.3 Analiza in obdelava podatkov Podatke o spletni strani naši pajki zbirajo iz le-te takrat, ko jo obiščejo. Podatke pridobivajo tudi iz različnih spletnih storitev, ki npr. določajo legitimnost domene.. Sledila je priprava drugega večjega dela. Izdelava spletne strani, ki omogoča iskanje po podatkih, ki smo jih pridobili v prvem delu oz., ki jih ves čas pridobivamo, saj se je naš pajek izvajal v ozadju in ves čas pridobival informacije o novih spletnih straneh.. Za pomoč pri izdelavi vizualnega dela spletne strani smo se odločili uporabiti Bootstrap in SASS. Bootstrap je priljubljen HTML, CSS in Javascript okvir, ki omogoča izdelavo odzivnih (ang. responsive) spletnih strani s fokusom na mobilne naprave [18].. SASS je močan in profesionalen CSS razširitveni jezik. Je popolnoma združljiv z vsemi CSS različicami, se ponaša z veliko več funkcijami in zmožnostmi kot navaden CSS in ima zelo veliko skupnost [19].. Po vzpostavitvi osnovnih tehnologij in projekta smo izdelali naš prvi kontrolnik za domačo stran. To je prva stran, ki jo uporabnik vidi. Skozi celotno izdelavo vizualnega dela smo se osredotočali na princip manj je več (ang. »less is more«). Za spletni iskalnik moramo zagotoviti enostavnost in podprtost različnih naprav, tako mobilnih kot namiznih.. Skozi celotno izdelavo smo se odločili, da tako besedila kot spremenljivke in imena funkcij ter ostalih tipov pišemo v angleščini.. Na domačo stran iskalnika smo se odločili postaviti ime iskalnika, ki smo ga simbolično poimenovali 'Simple Search Engine' oz. 'SimpleSearch', ter pod ime dodali še vnosno polje in gumb za iskanje, prikazano na sliki 4.3 in sliki 4.4. Po podatkih lahko iščemo tako, da v vnosno polje vnesemo iskalni niz.. 36.

(49) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. Slika 4.3: Domača stran izdelanega iskalnika.. Ker smo v prvem koraku ustvarili API-je, ki nam omogočajo enostavno iskanje po bazi, smo si delo precej olajšali. Ob vnosu podatkov v vnosno polje lahko s pritiskom tipke »enter« ali klikom na gumb »find« iščemo po bazi spletnih strani, ki smo jih indeksirali.. Slika 4.4: Izgled iskalnika na mobilni napravi.. 37.

(50) Tehnike za izgradnjo in optimizacijo delovanja spletnih iskalnikov. 4.4 Poizvedbe S pomočjo poizvedb lahko iščemo dokumente, ki so bili predhodno ustvarjeni. Poizvedbe lahko vračajo posamezne dokumente, ki ustrezajo postavljenim pogojem, ali pa vse dokumente v posamezni zbirki.. Poizvedbe lahko pišemo in izvajamo na dva načina: •. Konzolni »debug« način kjer lahko testiramo poizvedbe, dodajamo indekse in izvajamo ukaze za urejanje ter brisanje dokumentov in zbirk. Primer je prikazan na sliki 4.5.. •. V programskem jeziku s pomočjo različnih knjižnic pripravljenih za različne programske jezike. V našem primeru smo uporabili knjižnico za programski jezik c#. Slika 4.6 prikazuje primer implementacije, ki išče podatke v MongoDB bazi.. Slika 4.5: Primer enostavne poizvedbe v konzolnem načinu.. Slika 4.6: Implementacija kode, ki išče po podatkih.. 38.

References

Related documents

(2)Further authorize the amount of $60,000 for payment to the Department of Administrative Services, Division of Public Works Design and Construction, for engineering services

In addition to classic pass-by measurements carried out on various sites and vehicles at different heights, specific measurements of wheel and rail roughness as well as track

We are, thus, motivated to observed the land subsidence using gravity method in Jakarta (2008-2010) and Bandung (2009-2011) with aim to understand the phenomenon of

Furthermore, the velocity anisotropy is also reduced greatly due to variations of the stiffening effects of the fracture fluid in response to FF-WIFF (Rubino et al., 2017). Hence,

has been defined), holding that the fact that a third party’s use of a party’s trade mark as a keyword in relation to identical goods or services obliges the trade

Aluminum basket structure shall be secured to the steel understructure frame in a manner as to not create a tripping hazard on the aluminum decking material.. Unit shall have a

The main purpose of this paper is to in- tegrate fuzzy logic technique and backstepping syn- thesis to sliding mode control to develop a Fuzzy Backstepping-Sliding Mode

We provide an elaboration on the differences between repeated selection and repeated elimination, showing that these two choice representations yield strictly different sets of