[go: up one dir, main page]

NO20013308L - Device for searching the Internet - Google Patents

Device for searching the Internet Download PDF

Info

Publication number
NO20013308L
NO20013308L NO20013308A NO20013308A NO20013308L NO 20013308 L NO20013308 L NO 20013308L NO 20013308 A NO20013308 A NO 20013308A NO 20013308 A NO20013308 A NO 20013308A NO 20013308 L NO20013308 L NO 20013308L
Authority
NO
Norway
Prior art keywords
web
web pages
list
pages
server
Prior art date
Application number
NO20013308A
Other languages
Norwegian (no)
Other versions
NO20013308D0 (en
Inventor
Allan Lochert
Gudbrand Eggen
Jan Otto Reberg
Original Assignee
Wide Computing As
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wide Computing As filed Critical Wide Computing As
Priority to NO20013308A priority Critical patent/NO20013308L/en
Publication of NO20013308D0 publication Critical patent/NO20013308D0/en
Priority to PCT/NO2002/000244 priority patent/WO2003005240A1/en
Priority to EP02736301A priority patent/EP1412878A1/en
Publication of NO20013308L publication Critical patent/NO20013308L/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Control And Other Processes For Unpacking Of Materials (AREA)

Description

Detaljert beskrivelseDetailed description

Oppfinnelsen angår publisering og søking på World Wide Web, også bare kalt webben. Webben inneholder et høyt antall websider, gjort tilgjengelig av innholdsleverandører og lagret på webservere koblet sammen på internet. Sluttbrukere benytter ofte søkemaskiner for å finne informasjon. Typiske eksempler på søkemaskiner er Fast, AltaVista, Google og Yahoo. The invention relates to publishing and searching on the World Wide Web, also simply called the web. The web contains a large number of web pages, made available by content providers and stored on web servers linked together on the internet. End users often use search engines to find information. Typical examples of search engines are Fast, AltaVista, Google and Yahoo.

En beskrivelse av en søkemaskin kan finnes i "Anatomy of a Large-Scale Hypertextual Web Search Engine" av Sergey Brin og Lawrence Page, 1997. A description of a search engine can be found in "Anatomy of a Large-Scale Hypertextual Web Search Engine" by Sergey Brin and Lawrence Page, 1997.

Dagens søkemaskiner er typisk basert på submission eller crawling, eller en kombinasjon av disse to prinsippene, for å skaffe data til en søkeindeks. Denne søkeindeksen danner så basis for å betjene søkeforespørsler fra sluttbrukere. Today's search engines are typically based on submission or crawling, or a combination of these two principles, to obtain data for a search index. This search index then forms the basis for serving search requests from end users.

For søkemaskiner basert på submission blir URL-er submittet av sluttbrukereFor submission-based search engines, URLs are submitted by end users

eller innholdsleverandører eller hentet fra directorytjenester slik som Open Directory. Websidene svarende til disse URL-ene blir så lastet ned og benyttet som bases for en søkeindeks. or content providers or obtained from directory services such as Open Directory. The websites corresponding to these URLs are then downloaded and used as bases for a search index.

Crawle-baserte søkemaskiner er basert på en crawler som starter fra valgte websider, laster ned disse, finner websider som er referert fra de nedlastede sidene og laster ned disse igjen, og så videre. De nedlastede sidene danner basis for en søkeindeks. Startsidene kan være submittede sider. Crawl-based search engines are based on a crawler that starts from selected web pages, downloads them, finds web pages referenced from the downloaded pages and downloads them again, and so on. The downloaded pages form the basis for a search index. The start pages can be submitted pages.

Når websider legges til, endres eller slettes burde dette reflekteres i søkeindeksen. For å oppdage tillegg, endringer eller slettinger blir typisk crawling benyttet. Dette medfører at crawlingen må gjentas regelmessig, hvilket fører til tung belastning på overføringslinjer, på webserverne hos innholdsleverandører og på datamaskinene hos søkemaskinen. På grunn av disse kostnadene blir crawlingen av den antatt interessante delen av webben ofte begrenset til å bli gjort med en hastighet svarende til en gjennomsnittlig gjen-besøkelsestid fra noen uker til noen måneder. Derfor kan nyheter være tilgjengelig en viss tid på webservere before de blir funnet av søkemaskinene. Nye sider som det ikke finnes linker til, kan forbli uoppdaget. When web pages are added, changed or deleted, this should be reflected in the search index. Crawling is typically used to detect additions, changes or deletions. This means that the crawling must be repeated regularly, which leads to a heavy load on transmission lines, on the web servers of content providers and on the computers of the search engine. Because of these costs, the crawling of the supposedly interesting part of the web is often limited to being done at a rate equivalent to an average revisit time of a few weeks to a few months. Therefore, news can be available for a certain time on web servers before they are found by the search engines. New pages to which there are no links may remain undetected.

Det er flere søkemaskiner som prøver å crawle en vesentlig del av webben.There are several search engines that try to crawl a significant part of the web.

Det er et formål for denne oppfinnelsen å gi søkemaskiner en ny måte å oppdatere sine indekser basert på hva som er tilgjenglig på internet. It is an object of this invention to provide search engines with a new way to update their indexes based on what is available on the internet.

Det er et videre formål for denne oppfinnelsen å forbedre kvaliteten på søkemaskinindekser ved å redusere tiden fra en webside blir gjort tilgjengelig til den blir inkludert i indeksene. It is a further object of this invention to improve the quality of search engine indexes by reducing the time from when a web page is made available until it is included in the indexes.

Det er et videre formål for denne oppfinnelsen å minske kostnadene forbundet ved å holde indekser oppdatert. It is a further object of this invention to reduce the costs associated with keeping indexes up to date.

Det er et videre formål for denne oppfinnelsen å gi innholdsleverandører en mulighet for å publisere nyheter og endringer i deres websider til potensielle informasjonsbrukere. It is a further object of this invention to provide content providers with an opportunity to publish news and changes in their web pages to potential information users.

Det er et videre formål for denne oppfinnelsen å redusere mengden av datatrafikk nødvendig for å holde indekser oppdatert. It is a further object of this invention to reduce the amount of data traffic required to keep indexes up to date.

Det er et videre formål for denne oppfinnelsen å gi portaler forbedrede muligheter for å levere nyheter på sine websider. It is a further purpose of this invention to provide portals with improved possibilities for delivering news on their web pages.

Det er et videre formål for denne oppfinnelsen å redusere forårsaket av crawling. It is a further object of this invention to reduce caused by crawling.

Det er et videre formål for denne oppfinnelsen å gi bedre kontroll over hvilke websider som skal inkluderes av søkemaskinene. It is a further purpose of this invention to provide better control over which web pages are to be included by the search engines.

Det er et videre formål for denne oppfinnelsen å forbedre kategorisering av websider. It is a further object of this invention to improve the categorization of web pages.

Det er et videre formål for denne oppfinnelsen å redusere misbruk av kategorisering. It is a further object of this invention to reduce the misuse of categorization.

Det er et videre formål for denne oppfinnelsen å muliggjøre at dynamisk genererte websider blir indeksert. It is a further object of this invention to enable dynamically generated web pages to be indexed.

Det er et videre formål for denne oppfinnelsen å gi en oversikt over hvilke websider som er tilgjengelige på Internet. It is a further purpose of this invention to provide an overview of which web pages are available on the Internet.

Fig. 1 a illustrerer en søkemaskin basert på teknikkens stand.Fig. 1 a illustrates a search engine based on the state of the art.

Fig. 1 b illustrerer en søkemaskin basert på foreliggende oppfinnelse.Fig. 1 b illustrates a search engine based on the present invention.

Fig. 2 viser et detaljert eksempel på informasjon som kan flyte fra webservere til en sentral endringsserver og videre til søkemaskiner. Fig. 2 shows a detailed example of information that can flow from web servers to a central change server and on to search engines.

Fig. 3 viser endel detaljer av den indre strukturen for en agent.Fig. 3 shows some details of the internal structure of an agent.

Fig. 4 a og b illustrerer måter å balansere kommunikasjonsbelastningen for en sentral. Fig. 4 a and b illustrate ways to balance the communication load for an exchange.

Fig. 5 viser et eksempel på en konfigurasjonsfil for agenten.Fig. 5 shows an example of a configuration file for the agent.

Fig. 6 illustrerer en måte å forbinde søkemaskiner og cache-servere basert på foreliggende oppfinnelse. Fig. 7 visere en fleksibel, feiltolerant, skalerbar arkitektur for dataflyt i en webendringsserver. Fig. 8 a og b illustrer to mulige arrangementer for å bygge en liste over dokumenter som eksisterer på webben. Fig. 6 illustrates a way of connecting search engines and cache servers based on the present invention. Fig. 7 shows a flexible, fault-tolerant, scalable architecture for data flow in a web change server. Fig. 8 a and b illustrate two possible arrangements for building a list of documents that exist on the web.

Basisprinsippet for oppfinnelsen er at lokale agenter installeres på eller nær webservere eller grupper av webservere, og disse agentene oppdager og videresender endringer til en sentral webendringsserver. Webendringer sendes så videre til søkemaskiner, hvilket gir søkemaskiner en basis'for å laste ned bare sider som er nye eller modifiserte, og gir dem en mulighet for å fjerne deler av indeksen svarende til slettede websider. The basic principle of the invention is that local agents are installed on or near web servers or groups of web servers, and these agents detect and forward changes to a central web change server. Web changes are then sent to search engines, giving search engines a basis for downloading only pages that are new or modified, and giving them an opportunity to remove parts of the index corresponding to deleted web pages.

Basisprinsippet er illustrert både for bruk innenfor en søkemaskin og for å gi en selvstendig endringskatalog som en selvstendig tjeneste som kan tilbys flere søkemaskiner. The basic principle is illustrated both for use within a search engine and for providing an independent change catalog as an independent service that can be offered to several search engines.

Flere metoder for å oppdage endringer er vist.Several methods of detecting changes are shown.

Basisprinsippet for søkemaskiner i henhold til kjent teknikk er illustrert'på fig. 1 a. Websider 12 14 er lagret på en webserver 10. En søkemaskin 20 har en crawler 22. Crawleren 22 leser gjennom websidene den finner, og produserer en indeks The basic principle of search engines according to the prior art is illustrated in fig. 1 a. Web pages 12 14 are stored on a web server 10. A search engine 20 has a crawler 22. The crawler 22 reads through the web pages it finds and produces an index

24. En bruker på en sluttbrukermaskin 30 søker i indeksen 24 med en lokal 24. A user on an end-user machine 30 searches the index 24 with a local

nettleser 32. De ønskede dokumentene 14 lastes ned fra webserveren 10.browser 32. The desired documents 14 are downloaded from the web server 10.

Fig. 1 b viser en søkemaskin basert på foreliggende oppfinnelse. Websider 52 lagres på en webserver 50. En agent 54 crawler websidene 52. For hver crawl blir en loggfil 56 generert. Denne loggfilen 56 brukes for endringsdeteksjon. Informasjon om modifikasjoner, som dekker nye, endrede og slettede sider, sendes fra agenten 54 til en loader 62 i en søkemaskin 60. Søkemaskinen 60 oppdaterer en indeks 64 basert på resultatene fra crawling av nye og endrede sider, og sletter indeksinnhold basert på slettede sider. Indeksen 64 kan så avspørres og resultatene presenteres i en nettleser 72 på en sluttbrukermaskin 70 på den tradisjonelle måten. Fig. 1 b shows a search engine based on the present invention. Web pages 52 are stored on a web server 50. An agent 54 crawls the web pages 52. For each crawl, a log file 56 is generated. This log file 56 is used for change detection. Information about modifications, covering new, changed and deleted pages, is sent from the agent 54 to a loader 62 in a search engine 60. The search engine 60 updates an index 64 based on the results of crawling new and changed pages, and deletes index content based on deleted pages . The index 64 can then be queried and the results presented in a browser 72 on an end user machine 70 in the traditional manner.

Mengden av modifiserte websider på en webserver vill vanligvis være signifikant mindre enn den totale mengden av websider på serveren. Derfor vil mye mindre data bli overført, og den totale belastningen for søkemaskinen vil bli mye mindre ved bruk av foreliggende oppfinnelse. The amount of modified web pages on a web server will usually be significantly less than the total amount of web pages on the server. Therefore, much less data will be transferred, and the total load for the search engine will be much less when using the present invention.

I tillegg kan agenten overføre modifikasjonslisten til søkemaskinen raskt etter at modifikasjonene har blitt gjort, i stedet for at man må vente til søkemaskinen finner modifikasjonene under crawling på et eller annet tidspunkt. In addition, the agent can transmit the modification list to the search engine quickly after the modifications have been made, instead of having to wait for the search engine to find the modifications while crawling at some point.

Det finnes flere måter å starte utførelse av agenten. En måte er å implementere en service eller demon som utføres regelmessig i henhold til et tidsintervall og en første starttid, eller et annet skjema. En annen måte er å la administratorer starte agenten manuelt. Enda en annen metode er å implementere agenten slik at den kan startes fra et script, eventuelt synkronisert med andre prosesser som utføres på webserverne. There are several ways to start execution of the agent. One way is to implement a service or daemon that executes regularly according to a time interval and an initial start time, or some other scheme. Another way is to let administrators start the agent manually. Yet another method is to implement the agent so that it can be started from a script, possibly synchronized with other processes that are executed on the web servers.

Webendringsserveren kan være en komponent av en søkemaskin.The web change server may be a component of a search engine.

Alternativt kan webendringsserveren benyttes som en stand alone service som betjener flere søkemaskiner. Det siste alternativet har fordelen av å tillate å publisere data på flere søkemaskiner ved bare å installere og vedlikeholde en agent. Alternatively, the web change server can be used as a stand alone service that serves several search engines. The latter option has the advantage of allowing data to be published on multiple search engines by simply installing and maintaining an agent.

Fig. 2 viser et eksempel på informasjon som kan overføres. To agenter, hver installert på en webserver, sender to modifikasjonslister 10 20 inneholdende URL-er som refererer til modifiserte websider på en sentral server, hvor listene 10 20 kombineres til én aggregert modifikasjonsliste 30. Forskjellige uttrekk 40 50 kan så gjøres fra denne aggregerte listen 30 og kan sendes til ulike søkemaskiner. Fig. 2 shows an example of information that can be transferred. Two agents, each installed on a web server, send two modification lists 10 20 containing URLs referring to modified web pages to a central server, where the lists 10 20 are combined into one aggregated modification list 30. Various extracts 40 50 can then be made from this aggregated list 30 and can be sent to various search engines.

I figuren er nye websider markert med '+', endrede websider er markert med '!' og slettede websider er markert med In the figure, new web pages are marked with '+', changed web pages are marked with '!' and deleted web pages are marked with

Den aggregerte listen kan lages ved å kjede sammen innkommende modifikasjonslister i ankomstrekkefølge. The aggregated list can be created by concatenating incoming modification lists in order of arrival.

Fig. 3 viser en foretrukken utførelsesmetode for å detektere modifikasjoner. En agent 10 er installert på en webserver 5. En crawler 15 crawler websidene 25 på webserveren 5. En logg 35 blir laget basert på crawlingen. Etter at crawlingen er ferdig sammenligner en endringsdetektor 40 loggen 35 fra den nyeste crawlingen med loggen 45 fra den forrige crawlingen. Forskjellen mellom disse loggene oppsummeres i en modifikasjonsliste og overføres. Fig. 3 shows a preferred embodiment method for detecting modifications. An agent 10 is installed on a web server 5. A crawler 15 crawls the web pages 25 on the web server 5. A log 35 is created based on the crawling. After the crawl is complete, a change detector 40 compares the log 35 from the most recent crawl with the log 45 from the previous crawl. The difference between these logs is summarized in a modification list and transferred.

En foretrukken utførelsesmetode for loggen er å lage denne som en tabell med en rad for hver webside, en kolonne med URL-en for hver webside og en kolonne med sjekksum for hver webside. Endringsdetektoren 40 kan så sammenligne den nyeste loggen 35 med den forrige loggen 45 og rapportere endringer som følger: En URL som er tilstede bare i den nyeste loggen rapporteres som en ny side, en URL som er tilstede bare i den forrige loggen rapporteres som en slettet side, og en URL som er tilstede i begge lister men med forskjellige sjekksummer rapporteres som en endret side. URL-er som er tilstede i begge logger 35 45 blir ikke rapportert. A preferred implementation method for the log is to create it as a table with a row for each web page, a column with the URL for each web page, and a column with the checksum for each web page. The change detector 40 can then compare the most recent log 35 with the previous log 45 and report changes as follows: A URL present only in the most recent log is reported as a new page, a URL present only in the previous log is reported as a deleted page, and a URL that is present in both lists but with different checksums is reported as a changed page. URLs present in both logs 35 45 are not reported.

I én foretrukken utførelsesform blir sjekksummen generert basert på Exclusive OR (XOR) av grupper av tegn på websiden. Hvis for eksempel 32 bit sjekksummer ønskes, kan websiden deles inn i grupper på 4 og 4 bytes, og sjekksummen genereres ved å XOR-e gruppene. In one preferred embodiment, the checksum is generated based on Exclusive OR (XOR) of groups of characters on the web page. If, for example, 32 bit checksums are desired, the web page can be divided into groups of 4 and 4 bytes, and the checksum is generated by XORing the groups.

Andre metoder for å generere sjekksummer kan benyttes. Metoden bør fortrinnsvis generere en forholdsvis kort sjekksum, for eksempel fra 16 til 128 bits, og samtidig bør det være en forholdsvis lav sannsynlighet for at to websider med forskjellig innhold tilordnes samme sjekksum. Other methods for generating checksums can be used. The method should preferably generate a relatively short checksum, for example from 16 to 128 bits, and at the same time there should be a relatively low probability of two web pages with different content being assigned the same checksum.

I mange tilfeller kan samme innhold representeres ved forskjellige URL-er. Disse websidene kalles duplikater. Et slikt tilfelle er når aliaser brukes. In many cases, the same content can be represented by different URLs. These web pages are called duplicates. One such case is when aliases are used.

Når aliaser brukes, har innholdsleverandøren ofte en preferanse når det gjelder hvilken URL som skal rapporteres for duplikatene. When aliases are used, the content provider often has a preference as to which URL to report for the duplicates.

Dette kan løses ved bruk av sjekksummer. Crawleloggen kan sorteres eller aksesseres i sjekksumrekkefølge. I tilfeller hvor to eller flere sider har samme sjekksum kan en av URL-ene droppes. This can be solved by using checksums. The crawl log can be sorted or accessed in checksum order. In cases where two or more pages have the same checksum, one of the URLs can be dropped.

Generelt kan enhver metode for å generere sjekksummer, hvor sjekksummen er kortere enn den ikke-redundante delen av de original dataene, ved et uhell produsere samme sjekksom for to ulike websider. I tilfelle sjekksumkollisjon må derfor sidene selv sammenlignes for å sikre at duplikater blir korrekt detektert. In general, any method of generating checksums, where the checksum is shorter than the non-redundant part of the original data, can accidentally produce the same checksum as for two different web pages. In the event of a checksum collision, the pages themselves must therefore be compared to ensure that duplicates are correctly detected.

Valg av hvilken webside som skal rapporteres i tilfelle duplikater kan gjøres med en fastsatt regel. For eksempel kan den korteste URL-en benyttes, og i tilfelle to eller flere URL-er har samme lengde kan den første i alfabetisk rekkefølge benyttes. Selection of which web page to report in case of duplicates can be done with a set rule. For example, the shortest URL can be used, and in case two or more URLs have the same length, the first one in alphabetical order can be used.

Noen websider har overveiende statisk innhold men har også en mindre del som endres automatisk, for eksempel en klokke eller en treffteller. Slike sider bør ikke rapporteres som alltid endrede, fordi dette ville få en søkemaskin til å laste ned og reindeksere alle slike sider hver gang "endringer" rapporteres, hvilket vil resultere i unødvendig belastning på servere og nettverk. Some web pages have predominantly static content but also have a smaller part that changes automatically, for example a clock or a hit counter. Such pages should not be reported as always changed, because this would cause a search engine to download and reindex all such pages each time "changes" are reported, resulting in unnecessary load on servers and networks.

Dette problemet kan løses på flere forskjellige måter. En måte er å unnta visse elementer av sidene fra sjekksumberegningen. Eksempelvis kan alle strenger på formene "99:99:99" eller "99/99-9999" erstattes med blank-tegn før eller under generering av sjekksum. Det bør være mulig å kontrollere dette ved bruk av et konfigureringsverktøy, herunder å kontrollere nøyaktig hvilke strenger som skal tas ut. En administrator kan bli presentert eksempler på strenger som skal tas ut. Alternativt kan administratoren bli gitt mulighet til å spesifisere slike strenger, f.eks. ved å benytte regulære uttrykk slik som brukt i grep-kommandoen i UNIX. This problem can be solved in several different ways. One way is to exclude certain elements of the pages from the checksum calculation. For example, all strings of the form "99:99:99" or "99/99-9999" can be replaced with blank characters before or during checksum generation. It should be possible to control this using a configuration tool, including controlling exactly which strings are to be extracted. An administrator can be presented with examples of strings to extract. Alternatively, the administrator may be given the option to specify such strings, e.g. by using regular expressions as used in the grep command in UNIX.

Et spesialtilfelle av websider som genereres dynamisk er feilmeldingssider som svarer til manglende sider, også kalt døde linker. HTTP-protokollen tillater å rapportere manglende sider med feilmelding 404, uten innhold utover dette. En crawler kan oppdage dette og stoppe videre behandling. Imidlertid er noen webservere programmert til å svare med en feilmelding som inneholder et element slik som "Sorry, the page AAAA.htm was not found". I et slikt tilfelle vil hver URL som peker til webserveren, men ikke til en gyldig webside på denne serveren, resultere i en unik webside, hvilket i uheldige tilfeller kan føre til et uendelig antall websider som kan kvele agenten og/eller søkemaskinene. Slike tilfeller kan løses ved å fjerne selv-referanser fra websidene før eller under sjekksumgenerering. For eksempel for URL-en A special case of web pages that are generated dynamically are error message pages that correspond to missing pages, also called dead links. The HTTP protocol allows reporting missing pages with a 404 error message, with no content beyond this. A crawler can detect this and stop further processing. However, some web servers are programmed to respond with an error message containing an element such as "Sorry, the page AAAA.htm was not found". In such a case, every URL pointing to the web server but not to a valid web page on that server will result in a unique web page, which in unfortunate cases can lead to an infinite number of web pages that can choke the agent and/or search engines. Such cases can be solved by removing self-references from the web pages before or during checksum generation. For example for the URL

http://linkloader.com/nonexisting.page.htm som kunne resultere i en feilmeldingside som inneholder strengen "Sorry, the page http://linkloader.com/nonexistingpage.htm does not exist", kan agenten modifisere strengen til "Sorry, the page does not exist", som vil bli fanget opp gjennom duplikatdeteksjon. http://linkloader.com/nonexisting.page.htm which could result in an error message page containing the string "Sorry, the page http://linkloader.com/nonexistingpage.htm does not exist", the agent can modify the string to "Sorry , the page does not exist", which will be caught through duplicate detection.

På noen websteder hvor websider blir generert dynamisk eller endringsdeteksjon er vanskelig på grunn av andre årsaker, kan det være mer effektivt å rapportere bare nye og slettede sider. Dette bør være konfigurerbart. On some sites where web pages are dynamically generated or change detection is difficult for other reasons, it may be more efficient to report only new and deleted pages. This should be configurable.

På noen nettsteder kan noen sider bli dynamisk generert. For slike tilfeller bør det være mulig å implementere agenten slik at for noen sider blir både nye, endrede og slettede sider rapportert, mens for andre sider blir bare nye og slettede sider rapportert. En mulighet er å skille basert på filtyper, f.eks slik at URL-er med extension ".html" blir sjekket for alle typer modifikasjoner, mens URL-er med extension ".asp" kun sjekkes for nye eller slettede URL-er. En annen løsning for å skille er å basere dette på foldere. On some websites, some pages may be dynamically generated. For such cases, it should be possible to implement the agent so that for some pages both new, changed and deleted pages are reported, while for other pages only new and deleted pages are reported. One possibility is to differentiate based on file types, for example so that URLs with the extension ".html" are checked for all types of modifications, while URLs with the extension ".asp" are only checked for new or deleted URLs. Another solution for separation is to base this on folders.

I noen tilfeller blir et eller annet publiseringsverktøy brukt til å lage nettsteder. I disse tilfellene kan det være mer effektivt å basere listen over modifikasjoner direkte på resultater fra publiseringsverktøyet istedet for å crawle, eller eventuelt å kombinere disse to metodene. Dette kan tas inn i systemet ved å definere en grensesnittfil, slik at ved definert tidspunkt for crawling eller overføring blir alle URL-er i grensesnittfilen plukket opp av agenten og rapportert til sentralen. Dette kan være en liste over eksisterende URL-er, slik at agenten kan foreta endringsdeteksjon og overføre etterpå. Alternativt kan den være en liste over modifikasjoner, klar for direkte overføring. In some cases, some publishing tool is used to create websites. In these cases, it may be more efficient to base the list of modifications directly on results from the publishing tool instead of crawling, or possibly to combine these two methods. This can be taken into the system by defining an interface file, so that at a defined time for crawling or transfer, all URLs in the interface file are picked up by the agent and reported to the central office. This can be a list of existing URLs so that the agent can perform change detection and transfer afterwards. Alternatively, it can be a list of modifications, ready for direct transfer.

URL-ene som rapporteres åv agenten bør være den samme som URL-ene slik de sees av en søkemaskin og en sluttbruker. Dette er en viktig grunn for å benytte HTTP-protokollen til crawling, framfor FILE-protokollen. Derfor er HTTP-protokollen et naturlig valg i de fleste tilfeller. Imidlertid kan fordeler ved FILE-protokollen være viktig i noen tilfeller, slik som raskere utførelse eller uavhengighet av webserver. Når FILE-protokollen brukes, bør agenten ha en mekanisme for å konvertere FILE-baserte URL-er til HTTP-baserte URL-er som kan brukes fra utsiden. The URLs reported by the agent should be the same as the URLs as seen by a search engine and an end user. This is an important reason for using the HTTP protocol for crawling, rather than the FILE protocol. Therefore, the HTTP protocol is a natural choice in most cases. However, advantages of the FILE protocol may be important in some cases, such as faster execution or web server independence. When the FILE protocol is used, the agent should have a mechanism to convert FILE-based URLs to HTTP-based URLs that can be used from the outside.

Agenten må overføre listen over modifikasjoner tilbake til sentralen. Mulige protokoller som kan brukes er blant annet FTP (File Tranfer Protocol), mail (f.eks SMTP) og HTTP (Hypertext Transfer Protocol). I en foretrukken utførelsesform tar agenten initiativet til kommunikasjon ved å enten starte en FTP-sesjon, sende en email eller ved å sende en HTTP-forespørsel. Dette resulterer i effektiv bruk av tilgjengelige kommunikasjonskanaler, ved at kommunikasjon kun blir igangsatt når agenten har noe å overføre. The agent must transfer the list of modifications back to the central office. Possible protocols that can be used include FTP (File Transfer Protocol), mail (e.g. SMTP) and HTTP (Hypertext Transfer Protocol). In a preferred embodiment, the agent initiates communication by either starting an FTP session, sending an email or by sending an HTTP request. This results in efficient use of available communication channels, in that communication is only initiated when the agent has something to transfer.

Alternativt kan sentralen initiere kommunikasjonen. En fordel ved dette er at det sentrale nettstedet kan oppnå en bedre fordeling av belastningen over tid. Alternatively, the exchange can initiate the communication. An advantage of this is that the central site can achieve a better distribution of the load over time.

Agenten bør autentiseres både i tilfelle det brukes FTP, email og HTTP. Autentiseringen kan deles inn i to faser: Autentisering av administratoren og samhørende agent under registrering, og senere autentisering av innsendinger antatt å komme fra den gitte agenten. The agent should be authenticated both in case FTP, email and HTTP are used. The authentication can be divided into two phases: authentication of the administrator and associated agent during registration, and later authentication of submissions assumed to come from the given agent.

Autentiseringen under registrering kan gjøres manuelt. Alternativt kan automatisk støtte for denne prosessen legges til. Samsvar mellom crawl area og navn og epost-adresse til administratoren kan sikres ved å gjøre et oppslag i en Whois-database. Gyldigheten til epost-adressen kan sikres ved å sende en epost til den registrerte epostadressen og kreve et svar. The authentication during registration can be done manually. Alternatively, automatic support for this process can be added. Correspondence between the crawl area and the name and e-mail address of the administrator can be ensured by making a lookup in a Whois database. The validity of the e-mail address can be ensured by sending an e-mail to the registered e-mail address and demanding a reply.

Senere autentisering av overføringer kan gjøres ved å bruke Public Key Encryption, ved bruk av nøkkelpar generert under registrering. Later authentication of transfers can be done using Public Key Encryption, using key pairs generated during registration.

I tillegg til søkemaskiner kan også andre benytte data fra en webendringsserver. Ett eksempel er caching-tjenester. In addition to search engines, others can also use data from a web change server. One example is caching services.

En måte å bygge en caching-tjeneste på internett er å ha en mekanisme som kopierer websider fra innholdsleverandører, lagrer disse sidene på et eller flere mellomliggende steder, og leverer disse på forespørsel. One way to build a caching service on the Internet is to have a mechanism that copies web pages from content providers, stores these pages in one or more intermediate locations, and delivers them on demand.

En slik caching-tjeneste trenger en mekanisme for å. sikre cache-koherens, det vil si å forsikre at kopien som leveres til brukere er funksjonelt identisk med den originale websiden som ligger på webserveren. En tradisjonell måte å løse dette på er basert på HTTP headers: Hver gang en webside blir forespurt vil caching-serveren hente den tilsvarende headeren fra det originale nettstedet. Om headeren er identisk med headeren som er lagret på caching-serveren, vil resten av websiden bli vist fra caching-serveren. Denne metoden er avhengig av korrekt genererte HTTP headere, hvilket ikke alltid kan garanteres. Videre er metoden også avhengig av kommunikasjon med innholdsleverandøren for hver enkelt webside som skal leveres, som igjen fører til uønsket nettverkstrafikk. Ved å benytte metodene vist i foreliggende patentsøknad kan begge problemer reduseres. Modifikasjonslisten kan legges til grunn for å indikere hvilke websider som kan leveres fra caching-serveren, og hvilke som må hentes på nytt fra den originale webserveren. Such a caching service needs a mechanism to ensure cache coherence, i.e. to ensure that the copy delivered to users is functionally identical to the original web page located on the web server. A traditional way to solve this is based on HTTP headers: Every time a web page is requested, the caching server will retrieve the corresponding header from the original website. If the header is identical to the header stored on the caching server, the rest of the web page will be displayed from the caching server. This method relies on correctly generated HTTP headers, which cannot always be guaranteed. Furthermore, the method also depends on communication with the content provider for each individual web page to be delivered, which in turn leads to unwanted network traffic. By using the methods shown in the present patent application, both problems can be reduced. The modification list can be used to indicate which web pages can be served from the caching server, and which must be re-fetched from the original web server.

En caching-service kan ha mulighet til å rapportere antall treff for hver webside. Dette kan rapporteres tilbake til webendringsserveren og distribueres videre til søkemaskiner og andre interesserte parter. Treffrapporter kan være verdifulle for søkemaskiner ved utvalg av websider for nedlasting og indeksering, og også for å rangere resultater som skal presenteres for sluttbrukere. A caching service may be able to report the number of hits for each web page. This can be reported back to the web change server and distributed further to search engines and other interested parties. Hit reports can be valuable to search engines in selecting web pages for downloading and indexing, and also for ranking results to present to end users.

Dette er illustrert på fig. 6. En agent 10 på en webserver 15 rapporterer modifikasjoner til en webendringsserver 20. Webendringsserveren 20 sender så URL-ene til en caching-server 25 og en søkemaskin 30. Begge vil laste ned de modifiserte websidene fre webserveren 15, noe som lar dem levere henholdsvis websider og søkeresultater. Caching-serveren 25 vil vedlikeholde sidevisningsstatistikk, som rapporteres tilbake til webendringsserveren 20 og videre til søkemaskinen 30. Dermed kan søkemaskinen 30 levere bedre søkeresultatrangering. This is illustrated in fig. 6. An agent 10 on a web server 15 reports modifications to a web change server 20. The web change server 20 then sends the URLs to a caching server 25 and a search engine 30. Both will download the modified web pages from the web server 15, allowing them to deliver web pages and search results respectively. The caching server 25 will maintain page view statistics, which are reported back to the web change server 20 and further to the search engine 30. Thus, the search engine 30 can deliver a better search result ranking.

Kommersielt er flere ulike forretningsmodeller mulige.Commercially, several different business models are possible.

Innholdsleverandører kan bli bedt om å betale for en mer effektiv måte åContent providers may be asked to pay for a more efficient way to

publisere innholdet sitt enn hva som ellers ville vært mulig. Betaling kan bli kalkulert f.eks basert på antall URL-er overført, eller på den totale størrelsen på det overvåkede nettstedet. publish their content than would otherwise be possible. Payment can be calculated, for example, based on the number of URLs transferred, or on the total size of the monitored website.

Infrastrukturaktører som kommunikasjons-, hosting- eller cachingselskaper kan bli bedt om å betale for redusert belastning på deres infrastruktur eller for å tilby ny funksjonalitet til sine kunder. Betaling kan baseres på estimert eller målt redusert belastning på infrastruktur, eller ved å dele fortjeneste slike leverandører kan motta fra sine kunder for den nye funksjonaliteten. Infrastructure players such as communication, hosting or caching companies may be asked to pay for a reduced load on their infrastructure or to offer new functionality to their customers. Payment can be based on estimated or measured reduced load on infrastructure, or by sharing profits such providers can receive from their customers for the new functionality.

Søkemaskiner kan bli bedt om å betale for forbedring av kvaliteten på sine indekser eller for reduksjon av sine kommunikasjonskostnader. Betalingen kan være basert på antall URL-er som er mottatt benyttet. Search engines may be asked to pay for improving the quality of their indexes or for reducing their communication costs. Payment may be based on the number of URLs received used.

Noen søkemaskiner er spesialisert med hensyn til kategori. For slike søkemaskiner er det relevant å abonnere på data bare innenfor valgte kategorier. Some search engines are specialized with respect to category. For such search engines, it is relevant to subscribe to data only within selected categories.

En kategori kan bli tildelt nettstedet ved registrering. En bruker kan velge kategori fra en liste eller fra en trestruktur. OpenDirectory er ett eksempel på en kategori-trestruktur som kan brukes. A category may be assigned to the site upon registration. A user can select category from a list or from a tree structure. OpenDirectory is one example of a category tree that can be used.

I tillegg til kategorisering på nettsted-nivå kan det være behov for kategorisering på URL-nivå, hvor hver URL blir tildelt en eller flere kategorier. Et dataformat som passer bra for URL-nivå kategorisering er å legge til en kategorikolonne i modifikasjonslisten. Denne kolonnen kan så bli fylt med kategorikoder i henhold til en gitt liste eller trestruktur. In addition to categorization at website level, there may be a need for categorization at URL level, where each URL is assigned one or more categories. A data format that works well for URL-level categorization is to add a category column to the modifier list. This column can then be filled with category codes according to a given list or tree structure.

Kategorikolonnen kan baseres på konfigurasjonsdata gitt av administratoren for en webserver. Eksempelvis kan alt innhold innenfor en gitt folder tildeles en gitt kategori. The category column can be based on configuration data provided by the administrator of a web server. For example, all content within a given folder can be assigned to a given category.

Kategorisering kan også baseres på data eller metadata. Agenten kan søke etter gitte nøkkerlord i header- eller body-delen av websider. Categorization can also be based on data or metadata. The agent can search for given keywords in the header or body part of web pages.

På samme måte som noen søkemaskiner spesialiserer seg på visse kategorier eller på annen måte bruker kategoriinformasjon for å betjene søkeforespørsler, kan søkemotorer gjøre det samme med språk. Dette kan håndteres på en lignende måte som kategorier. Et språk kan bli registrert på nettsted-nivå. Alternativt kan en språkkode bli lagt inn i modifikasjonslisten. Denne språkkoden kan konfigureres, baseres på data, baseres på meta data eller på annen måte gis av en administrator. Just as some search engines specialize in certain categories or otherwise use category information to serve search queries, search engines can do the same with language. This can be handled in a similar way to categories. A language can be registered at the website level. Alternatively, a language code can be entered into the modification list. This language code can be configured, data-based, meta-data-based, or otherwise provided by an administrator.

For maksimum hastighet kan agenten få kjøre uten begrensninger med hensyn til prosessorbelastning eller nettverkstrafikk. For maximum speed, the agent can be allowed to run without limitations regarding processor load or network traffic.

I tilfeller der agenten konkurrerer med andre prosesser, kan det være fordelaktig å begrense bruken av ressurser. F.eks. om agenten kjøres på samme datamaskin som et webserverprogram, kan webserverens yteevne bli redusert mens agenten kjører. I slike tilfeller bør agenten begrenses med hensyn til ressursbruk. En måte å gjøre dette på er å begrense antall HTTP-forespørsler til et gitt antall sider eller kilobytes per sekund eller minutt. En annen måte er å sette en grense på prosentvis CPU bruk. En annen måte er sette en begrensing på hvor mye RAM applikasjonen kan bruke. Enda en annen måte er å begrense mangden av diskplass som brukes. Det bør være mulig å sette slike begrensninger under konfigurasjonen. In cases where the agent competes with other processes, it may be beneficial to limit the use of resources. For example if the agent is run on the same computer as a web server application, the web server's performance may be reduced while the agent is running. In such cases, the agent should be restricted with regard to resource use. One way to do this is to limit the number of HTTP requests to a given number of pages or kilobytes per second or minute. Another way is to set a limit on percentage CPU usage. Another way is to set a limit on how much RAM the application can use. Yet another way is to limit the amount of disk space used. It should be possible to set such restrictions during configuration.

Fig. 7 viser en skalerbar og feiltolerant arkitektur for et baksystem som tar hånd om modifikasjonslister. Fig. 7 shows a scalable and fault-tolerant architecture for a back-end system that handles modification lists.

FTP-serverne 00 05 aksepterer innkommende FTP-sesjoner fra agenter som overfører modifikasjonslister. Modifikasjonslistene blir lagret på disk ,10 15. Så lenge det er minst en FTP-server som kjører, vil agentene ha mulighet til å overføre sine modifikasjonslister. Hver FTP-server er i langt på vei uavhengig av resten av arkitekturen, noe som gjør FTP-serverne svært robuste overfor feil i resten av systemet. The FTP servers 00 05 accept incoming FTP sessions from agents transferring modification lists. The modification lists are stored on disk 10 15. As long as there is at least one FTP server running, the agents will be able to transfer their modification lists. Each FTP server is largely independent of the rest of the architecture, which makes the FTP servers very robust against errors in the rest of the system.

Aggregeringsserverne 20 25 leser modifikasjonslister og lagrer dem i aggregerte modifikasjonslister 30 35. Aggregeringsserverne kan også autentisere modifikasjonslistene mot nettsteder registrert i en database 70. The aggregation servers 20 25 read modification lists and store them in aggregate modification lists 30 35. The aggregation servers can also authenticate the modification lists against websites registered in a database 70.

Hver aggregeringsserver 20 25 kan lese modifikasjonslister fra disker 10 15 på flere forskjellige FTP-servere 00 05. Derfor vil totalsystemet fortsatt fungere selv om en eller flere aggregeringsservere er nede eller i ustand, så lenge minst en aggregeringsserver fortsatt er i funksjon. Each aggregation server 20 25 can read modification lists from disks 10 15 on several different FTP servers 00 05. Therefore, the overall system will still function even if one or more aggregation servers are down or out of order, as long as at least one aggregation server is still functioning.

Uttrekkservere 40 45 gjør uttrekk av data fra de aggregerte modifikasjonslistene, basert på uttrekksprofiler lagret i databasen 70, og lagrer også i dette tilfellet resultatet på disk 50 55. Extraction servers 40 45 extract data from the aggregated modification lists, based on extraction profiles stored in the database 70, and in this case also store the result on disk 50 55.

Distribusjonsserverne 60 65 distribuerer uttrukne data til de respektive abonnentene. Distribusjonsserverne 60 65 kan være FTP-servere, email-klienter, HTTP-servere eller andre midler for kommunisere med abonnenter. The distribution servers 60 65 distribute extracted data to the respective subscribers. The distribution servers 60 65 can be FTP servers, email clients, HTTP servers or other means for communicating with subscribers.

Diskene ved hvert trinn fungerer som buffere. Hvis et trinn skulle stoppe eller begynne å arbeide svært langsomt, vil diskene bufre resultatene fra foregående ledd inntil leddet er operativt igjen. The disks at each stage act as buffers. If a stage should stop or start working very slowly, the disks will buffer the results from the previous stage until the stage is operational again.

Om et stort antall agenter er installert på forskjellige webservere kan dette resultere i stor nettverkstrafikk når mange av agentene overfører modifikasjonslister samtidig. Fig. 4 a viser en løsning for skalering og lastfordeling. Forskjellige crawlere 10 20 har hver en liste 15 25 over prioriterte adresser til FTP-servere 40 50. Når en crawler 10 prøver å kontakte en FTP-server, velger den en prioritert adresse. Hvis ikke kontakt kan bli oppnådd, kan neste adresse på listen bli prøvd. If a large number of agents are installed on different web servers, this can result in large network traffic when many of the agents transfer modification lists at the same time. Fig. 4 a shows a solution for scaling and load distribution. Different crawlers 10 20 each have a list 15 25 of priority addresses of FTP servers 40 50. When a crawler 10 tries to contact an FTP server, it selects a priority address. If contact cannot be achieved, the next address on the list may be tried.

Alternativt kan skalering og lastfordeling gjøres ved bruk av Network Address Translation, forkortet til NAT. Ved å bruke denne teknikken, kan innkommende FTP-sesjoner distribueres til en gruppe FTP-servere basert på round robin eller lastbaserte metoder Alternatively, scaling and load distribution can be done using Network Address Translation, abbreviated to NAT. Using this technique, incoming FTP sessions can be distributed to a group of FTP servers based on round robin or load-based methods

I tillegg til modifikasjonslister som beskriver forandringer på websider, kan søkemaskiner også å ønske å ha en liste over tilgjengelige websider på internett ved et gitt tidspunkt. Et eksempel er når en ny søkemaskin blir etablert. En slik søkemaskin kan da trenge en liste over alle tilgjengelige websider for å starte indeksen sin, for å ha en basis for senere modifikasjoner. En liste over web-sider tilgjengelige på internett vil heretter bli kalt en basis-liste. Fig. 8 a viser en måte å integrere en basis-database 15 i pipelinen beskrevet i Fig. 7. En FTP-server 10 tilkoblet et nettverk 05 tar imot modifikasjonslister. Modifikasjonslistene blir aggregert av en aggregeringsserver 15 som setter URL-er inn i en aggregert modifikasjonsliste 20 og også konsoliderer inn i en basis- liste 25. En uttrekkserver 30 og en playoutserver 35 sender så dataene videre ved å distribuere til abonnenter over et nettverk 40. In addition to modification lists that describe changes to web pages, search engines may also wish to have a list of available web pages on the internet at a given time. An example is when a new search engine is established. Such a search engine may then need a list of all available web pages to start its index, in order to have a basis for later modifications. A list of web pages available on the internet will hereafter be called a base list. Fig. 8 a shows a way of integrating a base database 15 in the pipeline described in Fig. 7. An FTP server 10 connected to a network 05 receives modification lists. The modification lists are aggregated by an aggregation server 15 which puts URLs into an aggregate modification list 20 and also consolidates into a base list 25. An extraction server 30 and a playout server 35 then forward the data by distributing to subscribers over a network 40.

En metode for konsolidering kan sammenfattes med følgende pseudokode:A method of consolidation can be summarized with the following pseudocode:

For hver URL mottatt fra Aggregeringsserveren 15:For each URL received from the Aggregating server 15:

Hvis operasjonen er'+', dvs. en ny webside:If the operation is '+', i.e. a new web page:

Hvis URL-en allerede eksisterer i Basis-lista:If the URL already exists in the Basis list:

Gi en advarselGive a warning

ellerselse

Sett URL-en inn i Basis-listaInsert the URL into the Basis list

Hvis operasjonen erdvs. en slettet webside:If the operation is delayed. a deleted webpage:

Hvis URL-en eksisterer i Basis-lista:If the URL exists in the Basis list:

Slett URL-enDelete the URL

ellerselse

Gi en advarselGive a warning

Om operasjonen er'!', dvs. en forandret webside:If the operation is '!', i.e. a changed web page:

Hvis URL-en eksisterer i Basis-lista:If the URL exists in the Basis list:

Oppdater URL-enUpdate the URL

ellers:else:

Sett inn URL-enInsert the URL

Gi en advarselGive a warning

Metoden for å vedlikeholde en basis-liste som vist i Fig. 8 a passer bra for sanntidsbehandling av små eller mellomstore mengder data. The method of maintaining a base list as shown in Fig. 8 a is well suited for real-time processing of small or medium-sized amounts of data.

Imidlertid gjør behovet for Insert, Update og Delete operasjoner at metoden blir avhengig av et database-system, f.eks en SQL basert database. However, the need for Insert, Update and Delete operations means that the method becomes dependent on a database system, for example an SQL-based database.

En filbasert versjon for batch-basert kjøring er illustrert på fig 8 b. En FTP-server 55 mottar modifikasjonslister over et nettverk 50. En aggregeringsserver 60 samler opp data og lagrer i en aggregert modifikasjonsliste 65. Batcher av modifikasjonslistene blir samlet inn og sortert av en konsolideringsmodul 70. Batchene sorteres, og de sorterte batchene og en tidligere versjon av en basis-listen 80 blir lest parallellt. Resultatet blir konsolidert i en fletteprosess, og dataene blir skrevet til en ny versjon 85 av basis-databasen. Uttrekks- 85 og playout- 90 serverne kan deretter sende dataene videre til endelig distribusjon over et nettverk 95. A file-based version for batch-based execution is illustrated in Fig. 8 b. An FTP server 55 receives modification lists over a network 50. An aggregation server 60 collects data and stores in an aggregated modification list 65. Batches of the modification lists are collected and sorted by a consolidation module 70. The batches are sorted, and the sorted batches and an earlier version of a base list 80 are read in parallel. The result is consolidated in a merge process, and the data is written to a new version 85 of the base database. The extraction 85 and playout 90 servers can then pass the data on for final distribution over a network 95.

Mange nettsteder tilbyr en søkemekanisme for å søke innefor nettstedet. Dette blir noen ganger oppnådd ved å installere og operere en komplett søkemaskin som kjører på nettstedet. Many websites offer a search mechanism to search within the website. This is sometimes achieved by installing and operating a complete search engine running on the website.

Ved å bruke den foreliggende oppfinnelsen, kan slik funksjonalitet som nevnt over bli outsourcet til en eksisterende søkemaskin. By using the present invention, such functionality as mentioned above can be outsourced to an existing search engine.

Fig. 9 illustrerer en søkemekanisme, hvor indeksering, søking og rangering er outsourcet. En webserver 10 har et antall websider 15, blant disse en søkeside 20. En agent 25 rapporterer modifikasjoner til en webendringsserver 30. Resultatene blir rapportert til en søkemaskin 35, som har en modul 40 for nedlasting og indeksering, og produserer derved en indeks 45. Søkemaskinen har en forespørselsmotor 50. Når en sluttbruker bruker søkesiden 20 for å gjøre et søk, blir forespørselen sendt til forespørselsmotoren 50 på søkemaskinen 35, resultater blir generert basert på indeksen 45, og disse blir så returnert for visning på søkesiden 20. Fig. 9 illustrates a search mechanism, where indexing, searching and ranking are outsourced. A web server 10 has a number of web pages 15, among these a search page 20. An agent 25 reports modifications to a web change server 30. The results are reported to a search engine 35, which has a module 40 for downloading and indexing, thereby producing an index 45. The search engine has a query engine 50. When an end user uses the search page 20 to perform a search, the query is sent to the query engine 50 of the search engine 35, results are generated based on the index 45, and these are then returned for display on the search page 20.

Som beskrevet over kan agenten overføre modikasjoner til sentralen. Alternativt kan agenten overføre en komplett liste over URL-er funnet på nettstedet til sentralen og la modifikasjonene bli beregnet på sentralen. Denne løsningen resulterer i en agent med mindre kompleksitet siden operasjoner blir utført på webendringsserveren i stedet for av agenten. Imidlertid resulterer dette også i større nettverkstrafikk, siden komplette URL-lister må overføres i stedet for kun modifikasjoner. As described above, the agent can transfer modifications to the exchange. Alternatively, the agent can transmit a complete list of URLs found on the site to the switchboard and allow the modifications to be calculated on the switchboard. This solution results in an agent with less complexity since operations are performed on the web change server rather than by the agent. However, this also results in greater network traffic, since complete URL lists must be transferred instead of just modifications.

Claims (25)

1. Et apparat for å søke blant websider på Internet, apparatet kalt søkemaskin, hvor hver webside er identifisert med en .Unified Resource Locator, forkortet URL, og hvor websidene er lagret på et antall webservere, apparatet bestående av enhet for å lese websider, enhet for å lage en indeks basert på websidene, enhet for å fjerne en del av indeksen korresponderende til fjernede websider, og enhet for å motta søkeforespørsler og returnere resultater basert på innholdet av indeksen, hvor de nevnte enhetene er lokalisert på et sentralt sted, karakterisertvedat apparatet videre består av en enhet kalt agent, lokalisert på hver webserver eller på et lokalnettverk sammen med hver webserver, hvor agenten sender en liste inneholdende URL-er for nye websider og en liste inneholdende URL-er for slettede websider, de to sidene sammen kalt en modifikasjonsliste, til det sentrale stedet, og enheten for å lese websider velger hvilke sider den skal lese basert på modifikasjonslisten.1. An apparatus for searching among web pages on the Internet, the apparatus called a search engine, where each web page is identified by a .Unified Resource Locator, abbreviated URL, and where the web pages are stored on a number of web servers, the apparatus consisting of device for reading web pages, device to create an index based on the web pages, device for removing a part of the index corresponding to removed web pages, and device for receiving search requests and returning results based on the contents of the index, where said devices are located in a central location, characterized by the apparatus further consists of a device called an agent, located on each web server or on a local network together with each web server, where the agent sends a list containing URLs for new web pages and a list containing URLs for deleted web pages, the two pages together called a modification list, to the central site, and the web page reader device chooses which pages to read based on the modification list. 2. Et apparat i henhold til krav 1, hvor agenten også sender en liste inneholdende URL-er for endrede websider som en del av modifikasjonslisten.2. An apparatus according to claim 1, where the agent also sends a list containing URLs for modified web pages as part of the modification list. 3. Et apparat i henhold til krav 3, hvor agenten inneholder en enhet kalt crawler for å crawle websider på hver webserver, slik at en liste over websider blir generert for hver crawling, og listen over modifikasjoner for tidsrommet mellom to crawlinger dannes basert på forskjellen mellom listene over websider tilsvarende de to crawlingene.3. An apparatus according to claim 3, wherein the agent contains a device called a crawler to crawl web pages on each web server, so that a list of web pages is generated for each crawl, and the list of modifications for the time interval between two crawls is formed based on the difference between the lists of web pages corresponding to the two crawls. 4. Et apparat i henhold til krav 3, hvor crawleren benytter Hyper Text Transfer Protocol, forkortet HTTP.4. An apparatus according to claim 3, where the crawler uses the Hyper Text Transfer Protocol, abbreviated HTTP. 5. Et apparat i henhold til krav 3, hvor crawleren bruker File protocol, og URL-ene som derved blir funnet blir modifisert slik at de framtrer som gyldige HTTP-baserte URL-er når de brukes fra en browser.5. An apparatus according to claim 3, where the crawler uses the File protocol, and the URLs found thereby are modified so that they appear as valid HTTP-based URLs when used from a browser. 6. Et apparat i henhold til et av kravene 3 til 5, hvor apparatet videre består av en enhet for å beregne en sjekksum for hver webside som blir funnet under crawling, hvor en endring i en webside detekteres ved en endring i den korresponderende sjekksummen.6. An apparatus according to one of claims 3 to 5, which the device further consists of a device to calculate a checksum for each web page found during crawling, where a change in a web page is detected by a change in the corresponding checksum. 7. Et apparat i henhold til krav 6, hvor enheten for å beregne en sjekksum kan overse deler av websiden tilsvarende gitte regulære uttrykk.7. An apparatus according to claim 6, where the unit to calculate a checksum can overlook parts of the website corresponding to given regular expressions. 8. Et apparat i henholcLtil krav 6 eller 7, hvor enheten for beregne en sjekksum kan overse referanser til gjeldende webside.8. A device according to claim 6 or 7, where the device for calculating a checksum can ignore references to the current web page. 9. Et apparat i henhold til et av kravene 1 til 8, hvor websider med identisk innhold men med forskjellige URL-er, hvor URL-ene kalles aliaser, blir oppdaget, og en av disse URL-ene blir valgt ut for å rapporteres av agenten til det sentrale stedet.9. An apparatus according to one of claims 1 to 8, where web pages with identical content but with different URLs, where the URLs are called aliases, are detected and one of these URLs is selected to be reported by the agent to the central location. 10. Et apparat i henhold til krav 9, hvor et regelsett definerer hvilket av aliasene som velges.10. An apparatus according to claim 9, where a set of rules defines which of the aliases is selected. 11. Et apparat i henhold til et av kravene 1 til 10, hvor agenten videre består av et grensesnitt for å akseptere en eksternt produsert liste over modifikasjoner.11. An apparatus according to one of claims 1 to 10, where the agent further comprises an interface for accepting an externally produced list of modifications. 12. Et apparat i henhold til et av kravene 1 til 11, hvor File Transfer Protocol, forkortet FTP, blir benyttet for å overføre modifikasjonslisten til det sentrale stedet.12. An apparatus according to one of claims 1 to 11, where the File Transfer Protocol, FTP for short, is used to transfer the modification list to the central location. 13. Et apparat i henhold til et av kravene 1 til 11, hvor elektronisk post blir brukt for å overføre modifikasjonslisten til det sentrale stedet.13. An apparatus according to one of claims 1 to 11, where electronic mail is used to transmit the modification list to the central location. 14. Et apparat i henhold til et av kravene 1 til 11, hvor Hypertext Transfer Protocol, forkortet HTTP, blir brukt for å sende modifikasjonslisten til det sentrale stedet.14. An apparatus according to one of claims 1 to 11, where the Hypertext Transfer Protocol, abbreviated HTTP, is used to send the modification list to the central location. 15. Et apparat i henhold til et av kravene 1 til 14, hvor apparatet videre består av en enhet for å starte agenten eller overføringen til gitte tidspunkter eller koblet til gitte hendelser.15. An apparatus according to one of claims 1 to 14, which the device further consists of a device to start the agent or transfer at given times or linked to given events. 16. Et apparat i henhold til ett av kravene 1 til 15, apparatet videre bestående av enhet for å registrere brukere og tilsvarende passord og crawl areas, og enhet for å autentisere data i henhold til passord, hvor et crawl area avgrenser en del av webben ved å definere et top level domene, et nivå-2-domene og eventuelt en eller flere begrensninger innenfor domenet, og enheten for å autentisere data kontrollerer at mottatte URL-er er innenfor tilsvarende crawl area.16. An apparatus according to one of claims 1 to 15, the apparatus further consisting of device for registering users and corresponding passwords and crawl areas, and device for authenticating data according to passwords, where a crawl area delimits a part of the web by defining a top level domain, a level-2 domain and possibly one or more restrictions within the domain, and the device to authenticate data checks that received URLs are within the corresponding crawl area. 17. Et apparat i henhold til et av kravene 1 til 16, hvor agenten videre består av enhet for å assosiere hver URL med en eller flere kategorier, basert på data eller metadata i websidene, eller konfigurerbare regler, eller oppslag i et register over websider, og assosiasjonen mellom websider og kategorier overføres til det sentrale stedet.17. An apparatus according to one of claims 1 to 16, where the agent further consists of device to associate each URL with one or more categories, based on data or metadata in the web pages, or configurable rules, or lookups in a registry of web pages, and the association between web pages and categories is transferred to the central location. 18. Et apparat i henhold til et av kravene 1 til 17, apparatet videre bestående av en enhet, lokalisert på hver webserver eller på et utstyr forbundet til hver webserver over et lokalnettverk, for å motta søkeforespørsler, videresende søkeforespørslene til det sentrale stedet, motta resultater fra det sentrale stedet, og presentere resultatene på hver webserver.18. An apparatus according to one of claims 1 to 17, the apparatus further consisting of a device, located on each web server or on equipment connected to each web server over a local area network, to receive search requests, forward the search requests to the central location, receive results from the central location, and present the results on each web server. 19. Et apparat for å produsere en oversikt over endringer av websider på internet, apparatet kalt webendringstjener, hvor hver webside er identifisert med en URL og hvor websidene er lagret på flere webservere, apparatet bestående av en enhet for å sette sammen en liste over URL-er for nye, endrede og slettede websider, listen kalt total modifikasjonsliste, og en enhet for å overføre eller presentere den totale modifikasjonslisten eller et utdrag av den til ét sett av abonnenter, karakterisert ved at agenten kjøres på hver webserver eller på en enhet koblet til hver webserver over et lokalnettverk, enheten for å sette sammen den totale modifikasjonslisten er plassert på et sentralt sted, og enheten for å å sette sammen den totale modifikasjonslisten mottar modifikasjonslister fra hver agent.19. An apparatus for producing an overview of changes to web pages on the Internet, the apparatus called a web change server, where each web page is identified with a URL and where the web pages are stored on several web servers, the apparatus consisting of a device for compiling a list of URLs for new, modified, and deleted web pages, the list called total modification list, and a device for transmitting or presenting the total modification list or an excerpt thereof to one set of subscribers; characterized by that the agent is run on each web server or on a device connected to each web server over a local area network, the device for compiling the total modification list is located in a central location, and the device for assembling the total modification list receives modification lists from each agent. 20. Et apparat i henhold til krav 19, modifisert i henhold til ett av kravene 2 til 18.20. An apparatus according to claim 19, modified according to one of claims 2 to 18. 21. Et apparat i henhold til ett av kravene 19 til 20, hvor en ekstraktspesifikasjon er assosiert med hver abonnent, og ekstraktspesifikasjonen består av regler som definerer hvilke URL-er fra den totale modifikasjonslisten som skal sendes til abonnenten.21. An apparatus according to one of claims 19 to 20, where an extract specification is associated with each subscriber, and the extract specification consists of rules that define which URLs from the total modification list should be sent to the subscriber. 22. Et apparat for å cache websider, slik at apparatet skaper kopier av mage originale websider, hvor samlingen av kopier kalles en cache, karakterisert ved att/ -cachen holdes koherent med de originale websidene ved bruk ajlet apparat i henhold til ett av kravene 19 til 21.22. An apparatus for caching web pages, such that the apparatus creates copies of mage original web pages, where the collection of copies is called a cache, characterized in that the cache is kept coherent with the original web pages using an apparatus according to one of claims 19 until the 21st. 23. En søkemaskin i henhold til et av kravene 1 til 18, med søkemaskinen forbundet med et apparat for å cache websider, hvor apparatet for å cache websider produserer statistikk over cachetreff for websider, statistikken overføres til søkemaskinen, pg søkemaskinen benytter statistikk over cachetreff ved rangering av resultater.23. A search engine according to one of claims 1 to 18, with the search engine connected to a device for caching web pages, wherein the web page caching apparatus produces web page cache hit statistics, the statistics are transferred to the search engine, pg the search engine uses statistics on cache hits when ranking results. 24. En webendringsserver i henhold til et av kravene 19 til 21, med webendringsserveren forbundet med et apparat for å cache websider, hvor apparatet for å cache websider produserer statistikk over cachetreff for websider, statistikken overføres til søkemaskinen, og statistikken presenteres sammen med den totale modifikasjonslisten eller ekstraktet av denne.24. A web change server according to one of claims 19 to 21, with the web change server connected to an apparatus for caching web pages, the apparatus for caching web pages producing statistics of cache hits for web pages, the statistics are transferred to the search engine, and the statistics are presented together with the total modification list or its extract. 25. Et apparat for å produsere en liste over websider på flere webservere koblet til internet, listen kalt webstatus, apparatet kalt webstatusserver, karakterisert ved at modifikasjoner fra en webendringsserver i henhold til et av kravene 19 til 21 blir konsolidert til en webstatutus.25. An apparatus for producing a list of web pages on several web servers connected to the internet, the list called web status, the apparatus called web status server, characterized in that modifications from a web change server according to one of claims 19 to 21 are consolidated into a web statute.
NO20013308A 2001-07-03 2001-07-03 Device for searching the Internet NO20013308L (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
NO20013308A NO20013308L (en) 2001-07-03 2001-07-03 Device for searching the Internet
PCT/NO2002/000244 WO2003005240A1 (en) 2001-07-03 2002-07-02 Apparatus for searching on internet
EP02736301A EP1412878A1 (en) 2001-07-03 2002-07-02 Apparatus for searching on internet

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NO20013308A NO20013308L (en) 2001-07-03 2001-07-03 Device for searching the Internet

Publications (2)

Publication Number Publication Date
NO20013308D0 NO20013308D0 (en) 2001-07-03
NO20013308L true NO20013308L (en) 2003-01-06

Family

ID=19912636

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20013308A NO20013308L (en) 2001-07-03 2001-07-03 Device for searching the Internet

Country Status (3)

Country Link
EP (1) EP1412878A1 (en)
NO (1) NO20013308L (en)
WO (1) WO2003005240A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005020103A1 (en) * 2003-08-18 2005-03-03 Sap Aktiengesellschaft Generic search engine framework
GB2417342A (en) * 2004-08-19 2006-02-22 Fujitsu Serv Ltd Indexing system for a computer file store
US7418410B2 (en) 2005-01-07 2008-08-26 Nicholas Caiafa Methods and apparatus for anonymously requesting bids from a customer specified quantity of local vendors with automatic geographic expansion
US8140507B2 (en) 2007-07-02 2012-03-20 International Business Machines Corporation Method and system for searching across independent applications
US7877368B2 (en) * 2007-11-02 2011-01-25 Paglo Labs, Inc. Hosted searching of private local area network information with support for add-on applications
WO2011040981A1 (en) * 2009-10-02 2011-04-07 David Drai System and method for search engine optimization
WO2014008468A2 (en) 2012-07-06 2014-01-09 Blekko, Inc. Searching and aggregating web pages
CN105740384A (en) * 2016-01-27 2016-07-06 浪潮软件集团有限公司 A crawler agent automatic switching method and device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974455A (en) * 1995-12-13 1999-10-26 Digital Equipment Corporation System for adding new entry to web page table upon receiving web page including link to another web page not having corresponding entry in web page table
US5855020A (en) * 1996-02-21 1998-12-29 Infoseek Corporation Web scan process
US5898836A (en) * 1997-01-14 1999-04-27 Netmind Services, Inc. Change-detection tool indicating degree and location of change of internet documents by comparison of cyclic-redundancy-check(CRC) signatures
US6516337B1 (en) * 1999-10-14 2003-02-04 Arcessa, Inc. Sending to a central indexing site meta data or signatures from objects on a computer network

Also Published As

Publication number Publication date
WO2003005240A1 (en) 2003-01-16
NO20013308D0 (en) 2001-07-03
EP1412878A1 (en) 2004-04-28

Similar Documents

Publication Publication Date Title
CN100533434C (en) Method and apparatus for detecting invalid click on internet search engine
US7904345B2 (en) Providing website hosting overage protection by transference to an overflow server
US6330606B1 (en) Method and apparatus for dispatching document requests in a proxy
EP1706832B1 (en) Improved user interface
JP4846922B2 (en) Method and system for accessing information on network
US6636854B2 (en) Method and system for augmenting web-indexed search engine results with peer-to-peer search results
US6823362B2 (en) Effectively and efficiently updating content files among duplicate content servers
US9380022B2 (en) System and method for managing content variations in a content deliver cache
US6910077B2 (en) System and method for identifying cloaked web servers
US8065292B2 (en) Generating an index for a network search engine
US7987509B2 (en) Generation of unique significant key from URL get/post content
US20080243536A1 (en) Providing website hosting overage protection by storage on an independent data server
NO313399B1 (en) Procedure for searching and analyzing information in computer networks
KR20020062967A (en) Real-time search engine
CN102929984A (en) Website failure searching method and device
US20030084034A1 (en) Web-based search system
JP3682023B2 (en) Web page connection system and method using real name
NO20013308L (en) Device for searching the Internet
CN101046806B (en) Search engine system and method
JP2003256370A (en) Security information distribution method and security information distribution server
WO1999042935A1 (en) System for searching and monitoring information on a computer network
CN112182601A (en) Domain name data storage method and system based on block chain
US20100241740A1 (en) System and method for resolving network addresses
IE990277A1 (en) An inter-computer communications apparatus
IES990276A2 (en) An inter-computer communications apparatus

Legal Events

Date Code Title Description
FC2A Withdrawal, rejection or dismissal of laid open patent application