NO313347B1 - Search engine with two-dimensional linear scalable, parallel architecture - Google Patents

Search engine with two-dimensional linear scalable, parallel architecture Download PDF

Info

Publication number
NO313347B1
NO313347B1 NO20002419A NO20002419A NO313347B1 NO 313347 B1 NO313347 B1 NO 313347B1 NO 20002419 A NO20002419 A NO 20002419A NO 20002419 A NO20002419 A NO 20002419A NO 313347 B1 NO313347 B1 NO 313347B1
Authority
NO
Norway
Prior art keywords
search
nodes
collection
partition
search engine
Prior art date
Application number
NO20002419A
Other languages
Norwegian (no)
Other versions
NO20002419D0 (en
NO20002419L (en
Inventor
Arne Halaas
Knut Magne Risvik
Børge Svingen
Tor Egge
Original Assignee
Fast Search & Transfer Asa
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
Priority claimed from NO992269A external-priority patent/NO992269D0/en
Application filed by Fast Search & Transfer Asa filed Critical Fast Search & Transfer Asa
Priority to NO20002419A priority Critical patent/NO313347B1/en
Publication of NO20002419D0 publication Critical patent/NO20002419D0/en
Publication of NO20002419L publication Critical patent/NO20002419L/en
Publication of NO313347B1 publication Critical patent/NO313347B1/en

Links

Landscapes

  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)
  • Image Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

Den foreliggende oppfinnelse angår en søkemotor med todimensjonalt lineært skalerbar, parallell arkitektur for søking i en samling av tekstdokumenter D, hvor dokumentene kan deles i et antall partisjoner di, d2,... dn, hvor samlingen av dokumenter D er forhåndsbehandlet i et tekstfiltreringssystem, slik at det fås en forhåndsbehandlet dokumentsamling Dp og tilsvarende forhåndsbehandlede partisjoner dpl, dp2,... dpn, hvor en indeks / kan genereres fra dokumentsamlingen D slik at for hver tidligere forhåndsbehandlet partisjon dpl, dp2,..., dpn fås en tilsvarende indeks //, i2,..., i„, hvor søking i en partisjon d av dokumentsamlingen D finner sted med et partisjonsavhengig datasett dp k, og hvor søkemotoren omfatter databehandlingsenheter som danner sett av noder forbundet i et nettverk. The present invention relates to a search engine with a two-dimensional linearly scalable, parallel architecture for searching a collection of text documents D, where the documents can be divided into a number of partitions di, d2,... dn, where the collection of documents D is pre-processed in a text filtering system, so that a pre-processed document collection Dp and corresponding pre-processed partitions dpl, dp2,... dpn are obtained, where an index / can be generated from the document collection D so that for each previously pre-processed partition dpl, dp2,..., dpn a corresponding index is obtained //, i2,..., i„, where searching in a partition d of the document collection D takes place with a partition-dependent data set dp k, and where the search engine comprises data processing units that form sets of nodes connected in a network.

De fleste søkemotorer kjent i teknikken arbeider med store datasett og benytter kraftige datamaskiner til å utføre søkingen. Imidlertid er søking et partisjonerbart databehandlingsproblem, og dette faktum kan benyttes til å partisjonere et søkeproblem i et stort antall spesifikke spørsmål og la hvert spørsmål behandles samtidig på et tilsvarende antall prosessorer forbundet i parallell i et nettverk. Spesielt kan søking ses som et binært partisjonerbart databehandlingsproblem og følgelig benyttes et binært trenettverk for å etablere en multiprosessorarkitektur slik som f.eks. vist i US patent nr. 4860201 (Stolfo & al.) og internasjonal patentsøknd PCT/NO99/00308 som tilhører nærværende søker og som det herved skal henvises til. Den foreliggende søker har utviklet egne teknologier for å søke i regulære tekstdokumenter. Disse teknologiene er blant annet basert på et søkesystem og en fremgangsmåte for søking som beskrevet i internasjonal patentsøknad PCT7NO99/00233 som tilhører den nærværende søker og som det herved skal henvises til. Søkesystemet er basert på effektive kjernesøkealgoritmer som kan benyttes i søkemotoren i henhold til oppfinnelsen. Most search engines known in the art work with large data sets and use powerful computers to perform the search. However, search is a partitionable computing problem, and this fact can be used to partition a search problem into a large number of specific queries and allow each query to be processed simultaneously on a corresponding number of processors connected in parallel in a network. In particular, searching can be seen as a binary partitionable computing problem and consequently a binary tree network is used to establish a multiprocessor architecture such as e.g. shown in US patent no. 4860201 (Stolfo & al.) and international patent application PCT/NO99/00308 which belongs to the present applicant and to which reference is hereby made. The present applicant has developed its own technologies for searching regular text documents. These technologies are based, among other things, on a search system and a method for searching as described in international patent application PCT7NO99/00233 which belongs to the present applicant and to which reference should be made. The search system is based on effective core search algorithms that can be used in the search engine according to the invention.

Som et ytterligere eksempel på teknikkens stand kan nevnes internasjonal publisert patentsøknad W097/34242 (Muller & al.) som primært angår en statistisk tesaurus som genereres dynamisk fra en tekstsamling som skal søkes, slik at det fås en forbedret generering av utvidede søketermer. Det bygges opp særskilte tesauri etter hvert som indekserte dokumenter anordnes i "samlinger". Fortrinnsvis er disse samlingene dannet på basis av og avgrenset til innbyrdes forskjellige dokumenter i tekstsamlingen. Valg av tesauri og generering av utvidede avspørringstermer skjer i prosesser som er delt i parallelle tråder. De enkelte tråder svarer til respektive tekstkilder, slik at forbedret generering av utvidede avspørringstermer kan skje hovedsakelig i sanntid. Genereringen og bruken av statistiske tesauri implementeres på et informasjonsgjenfinningssystem som i et flerbrukermiljø tillater søking av en undermengde av en større dokumentsamling på basis av bestemte stikkord eller fraser. For dette formål benyttes en rekke søkemotorer, hver tilordnet en respektive datamaskin som utgjør en "sesjonsadministrator". Hver av søkemotorene kan romme en eller flere av de særskilte dokumentsamlinger og aksesserer en eller flere av disse samlingene. Data som representerer frase- og tesaurus-leksika, adresseres fra de respektive As a further example of the state of the art, international published patent application W097/34242 (Muller & al.) can be mentioned, which primarily concerns a statistical thesaurus that is dynamically generated from a text collection to be searched, so that an improved generation of extended search terms is obtained. Special thesauri are built up as indexed documents are arranged in "collections". Preferably, these collections are formed on the basis of and delimited to mutually different documents in the text collection. Selection of thesauri and generation of extended query terms occurs in processes that are divided into parallel threads. The individual threads correspond to respective text sources, so that improved generation of extended query terms can occur mainly in real time. The generation and use of statistical thesauri is implemented on an information retrieval system that, in a multi-user environment, allows searching a subset of a larger collection of documents on the basis of specific keywords or phrases. For this purpose, a number of search engines are used, each assigned to a respective computer that constitutes a "session manager". Each of the search engines can accommodate one or more of the separate document collections and accesses one or more of these collections. Data representing phrase and thesaurus lexicons are addressed from the respective

sesjonsadministratorer. Frontprosessorer er forbundet med sesjonsadministratorene og håndterer systemets I/O. Selve søkingen utføres session managers. Front-end processors are connected to the session managers and handle the system's I/O. The search itself is performed

på søkemotorene og kan avhengig av søkespørsmålene skje samtidig på flere av disse, men behøver ikke å gjøre det. Det vil naturligvis være responsen fra sesjonsadministratorene som avgjør hvor omfattende et søk behøver å bli og i hvilken grad det vil kreve parallell bruk av flere søkemotorer. Det vil ses at den i henhold til W097/34242 foreslåtte maskinvarekonfigurasjon bare benytter en parallell arkitektur som er koblet opp mot bruken av dynamisk genererte, statistiske tesauri på hovedsakelig dokumentavgrensede partisjoner av dokumentsamlingen. Noen form for lineær skalering lar seg ikke implementere, og konfigurasjonen er derfor ikke i stand til å ta hånd om skalerbarhetsproblemet slik det konvensjonelt forståes i tilknytning til generelle systemer for informasjonssøking og gjenfinning. on the search engines and, depending on the search queries, can take place simultaneously on several of these, but does not have to do so. It will naturally be the response from the session administrators that determines how comprehensive a search needs to be and to what extent it will require the parallel use of several search engines. It will be seen that the hardware configuration proposed according to W097/34242 only uses a parallel architecture which is connected to the use of dynamically generated, statistical thesauri on mainly document-delimited partitions of the document collection. Some form of linear scaling cannot be implemented, and the configuration is therefore not able to take care of the scalability problem as it is conventionally understood in relation to general information search and retrieval systems.

Generelt er det også kjent maskinvarekonfigurasjoner for informasjonssøke-og gjenfinningssystemer realisert med parallelle enheter som samtidig utfører forskjellige typer søking i en hierarkisk rangordning. Eksempelvis kan i den forbindelse vises til US patent nr. 5 519 857 (Kato & al., overdratt til Hitachi, Ltd.) som utfører en totrinns forsøkeprosess med hensyn til et emnebasert stikkord. I det første trinn genereres en tegnkomponenttabell som dernest søkes med hensyn på alle tegnkoder som omfatter et angitt søkeord, hvorved alle dokumenter som inneholder karakterkodene som omfatter dette søkeord trekkes ut. I det annet trinn elimineres alle dokumenter eller tekster som ikke kan inneholde emneordet, og det kan deretter utføres en omfattende tekstsøking på en begrenset dokumentsamling ved bruk av det angitte søkeord. For de forskjellige trinn i søkeprosessen benyttes enheter som arbeider i parallell, men det vil ses at systemet i henhold til Kato & al. ikke tillater noen form for lineær skalering i noen som helst forstand. In general, there are also known hardware configurations for information search and retrieval systems realized with parallel units which simultaneously perform different types of search in a hierarchical ranking. For example, in this connection, reference can be made to US patent no. 5,519,857 (Kato & al., assigned to Hitachi, Ltd.), which performs a two-stage trial process with regard to a topic-based keyword. In the first step, a character component table is generated which is then searched with regard to all character codes that comprise a specified search term, whereby all documents containing the character codes that comprise this search term are extracted. In the second step, all documents or texts that cannot contain the subject term are eliminated, and a comprehensive text search can then be performed on a limited collection of documents using the specified search term. For the various steps in the search process, units are used that work in parallel, but it will be seen that the system according to Kato & al. does not allow any kind of linear scaling in any sense.

Det er imidlertid blitt av økende viktighet å ta hånd om et voksende antall dokumenter som skal søkes, og også være i stand til å håndtere en økt trafikkbelastning, dvs. antallet avspørringer pr. sekund som skal behandles av søkesystemet. Dette, bortsett fra evnen til å håndtere et stort antall søkespørsmål samtidig på prosessornivå, innebærer at en søkemotor bør implementeres med en arkitektur som tillater en foretrukket lineær skalerbarhet i to dimensjoner, nemlig med hensyn både til datavolum og ytelse, m.a.o. evnen til å håndtere et meget stor antall avspørringer pr. sekund. Når utviklingen av World Wide Web tas i betraktning, vil skalerbarhetsproblemet i søkemotorarkitekturen være uhyre viktig, da det for tiden skjer en enorm vekst både i antall dokumenter og antall brukere på Internett. However, it has become increasingly important to handle a growing number of documents to be searched, and also to be able to handle an increased traffic load, i.e. the number of queries per second to be processed by the search system. This, apart from the ability to handle a large number of search queries simultaneously at the processor level, implies that a search engine should be implemented with an architecture that allows a preferred linear scalability in two dimensions, namely with regard to both data volume and performance, i.e. the ability to handle a very large number of queries per second. When the development of the World Wide Web is taken into account, the scalability problem in the search engine architecture will be extremely important, as there is currently an enormous growth in both the number of documents and the number of users on the Internet.

Kjente søkemotorløsninger for Internett er i stand til å skalere til et visst nivå, men nesten bestandig oppnås dette på en måte som krever en høy kostnadsøkning for søkemotorsystemet relativt til veksten i datavolumet eller datatrafikken. Meget ofte skalerer systemkostnadene som kvadratet av datavolumet eller -trafikken, slik at en dobling av datavolumet fører til fire gangers økning i systemkostnadene. Videre er alle større internettsøkemotorer for tiden basert på en meget kostbar tjenerteknologi, ofte kombinert med rå beregningskraftmetoder og ledsaget av ulemper som en langsom omløpshastighet for tjenerne, krav til spesiell maskinvare for å skaffe feiltoleranse o.s.v. Systemkostnadene kan f.eks. måles som mengden av maskinvare som er nødvendig for å implementere en søkemotorløsning eller den virkelige samlede pris for systemet. Known search engine solutions for the Internet are able to scale to a certain level, but this is almost always achieved in a way that requires a high cost increase for the search engine system relative to the growth in data volume or data traffic. Very often the system costs scale as the square of the data volume or traffic, so that a doubling of the data volume leads to a fourfold increase in the system costs. Furthermore, all major Internet search engines are currently based on a very expensive server technology, often combined with raw computational power methods and accompanied by disadvantages such as a slow circulation speed of the servers, requirements for special hardware to provide fault tolerance, etc. The system costs can e.g. measured as the amount of hardware required to implement a search engine solution or the real total cost of the system.

Det er således en hovedhensikt med den foreliggende oppfinnelse å skaffe en søkemotor med flernivås data- og funksjonsparallellisme, slik at store volum av data kan søkes effektivt og meget hurtig av et meget stort antall brukere samtidig. It is thus a main purpose of the present invention to provide a search engine with multi-level data and function parallelism, so that large volumes of data can be searched efficiently and very quickly by a very large number of users at the same time.

Spesielt er det en ytterligere hensikt med oppfinnelsen å skaffe en parallell arkitektur for å implementere en søkemotor med flernivås data- og funksjonsparallellisme. In particular, it is a further purpose of the invention to provide a parallel architecture for implementing a search engine with multi-level data and function parallelism.

Enda en ytterligere hensikt med oppfinnelsen er å skaffe en parallell arkitektur som er lineært skalerbar i to dimensjoner, dvs. med hensyn til både datavolum og ytelse, dvs. avspørringsraten. A further purpose of the invention is to provide a parallel architecture which is linearly scalable in two dimensions, i.e. with respect to both data volume and performance, i.e. the polling rate.

De ovennevnte hensikter og ytterligere trekk og fordeler skaffes med en The above purposes and additional features and benefits are obtained with one

søkemotor i henhold til oppfinnelsen som er kjennetegnet ved at et første sett av noder omfatter a sendenoder, et annet sett av noder omfatter b søkenoder, et tredje sett av noder omfatter g indekseringsnoder, og et valgfritt fjerde sett av noder omfatter e innsamlingsnoder, at sendenodene er forbundet i en flernivås konfigurasjon i nettverket, at søkenodene er gruppert i v kolonner som er forbundet i parallell i nettverket mellom sendenodene og en indekseringsnode, at sendenodene er innrettet til å behandle søkespørsmål og søkesvar, idet søkesvarene sendes videre til alle søkenoder og i tilfelle innsamlingsnoder ikke foreligger, returneres søkesvarene til sendenodene og kombineres deri til et endelig søkeresultat, at søkenodene hver er innrettet til å romme søkeprogramvare, at indekseringsnodene er innrettet til generelt å generere indekser i for søkeprogramvaren og opsjonelt for å generere partisjonsavhengige datasett dpk til søkenoder som omfatter en søkeprosessormodul, at i tilfellet en innsamlingsnode foreligger, er disse forbundet i en flernivås konfigurasjon i nettverket lik den for sendenodene, og innrettet til å samle svar på søkespørsmål og gi ut et endelig resultat og således avlaste søkenodene for denne oppgave, at antallet v av søkenodekolonner skalerer med antallet n av partisjoner d, slik at det implementeres en skalering av datavolumet, og at antallet b/ v av søkenoder i hver søkenodekolonne skalerer med en estimert eller forventet trafikkbelastning, slik at det implementeres en skalering av ytelse, hvorved i et hvert tilfelle søking i dokumentsamlingen D finner sted ved at hver av søkenodekolonnene rommer ett av de partisjonsavhengige datasett dp k og alle søkenoder i en søkenodekolonne hver rommer identiske partisjonsavhengige datasett dptk. search engine according to the invention which is characterized in that a first set of nodes comprises a transmitting nodes, a second set of nodes comprises b searching nodes, a third set of nodes comprises g indexing nodes, and an optional fourth set of nodes comprises e collection nodes, that the transmitting nodes are connected in a multi-level configuration in the network, that the search nodes are grouped in v columns that are connected in parallel in the network between the sending nodes and an indexing node, that the sending nodes are arranged to process search questions and search answers, with the search answers being forwarded to all search nodes and in the case of collection nodes is not available, the search responses are returned to the sending nodes and combined therein into a final search result, that the search nodes are each configured to accommodate search software, that the indexing nodes are configured to generally generate indexes in for the search software and optionally to generate partition-dependent data sets dpk for search nodes that include a search processor module, that in case a collection node is present, these are connected in a multi-level configuration in the network similar to that of the sending nodes, and designed to collect answers to search questions and issue a final result and thus relieve the search nodes for this task, that the number v of search node columns scales with the number n of partitions d, so that a scaling of the data volume is implemented, and that the number b/v of search nodes in each search node column scales with an estimated or expected traffic load, so that a scaling of performance is implemented, whereby in each case searching in the document collection D takes place in that each of the search node columns contains one of the partition-dependent data sets dp k and all search nodes in a search node column each contain identical partition-dependent data sets dptk.

I henhold til oppfinnelsen er fordelaktig flernivåkonfigurasjonen av sendenoder og de valgfrie innsamlingsnoder i nettverket dannet som hierarkiske trestrukturer, og flernivåkonfigurasjonen av de valgfrie innsamlingsnoder er da foretrukket et speilbilde av flernivåkonfigurasjonen av sendenodene, og de hierarkiske trestrukturer er foretrukket binære trestrukturer. According to the invention, the multi-level configuration of sending nodes and the optional collection nodes in the network are advantageously formed as hierarchical tree structures, and the multi-level configuration of the optional collection nodes is then preferably a mirror image of the multi-level configuration of the sending nodes, and the hierarchical tree structures are preferably binary tree structures.

I henhold til oppfinnelsen omfatter hver av søkenodene fordelaktig en søkeprogramvaremodul. According to the invention, each of the search nodes advantageously comprises a search software module.

Videre omfatter i henhold til oppfinnelsen i det miste noen av søkenodene fordelaktig minst en dedisert søkeprosessormodul, idet hver søkeprosessormodul realiseres med én eller flere dediserte prosessorbrikker som er innrettet til parallell håndtering av et antall q søkespørsmål. I den forbindelse er det foretrukket at de dediserte søkeprosessorbrikker er anordnet i søkeprosessormodulene i y prosessorgrupper, hver med z søkeprosessorbrikker og forbundet med og innrettet til å motta data fra et minne tilordnet prosessorgruppen. Furthermore, according to the invention, some of the search nodes advantageously include at least one dedicated search processor module, each search processor module being realized with one or more dedicated processor chips which are designed for parallel handling of a number of q search queries. In that connection, it is preferred that the dedicated search processor chips are arranged in the search processor modules in y processor groups, each with z search processor chips and connected to and arranged to receive data from a memory assigned to the processor group.

I henhold til oppfinnelsen kan fordelaktig en økning i antall partisjoner ved skalering av datavolumet være ledsaget av en tilsvarende økning i antall sendenoder og i tilfelle også i antall innsamlingsnoder og opsjonelt også i antall indekseringsnoder. According to the invention, an increase in the number of partitions when scaling the data volume can advantageously be accompanied by a corresponding increase in the number of sending nodes and in some cases also in the number of collecting nodes and optionally also in the number of indexing nodes.

Hvor hver av søkenodene bare omfatter en søkeprogramvaremodul, omfatter det partisjonsavhengige datasett dpk bare indeksen ik. Where each of the search nodes comprises only one search software module, the partition-dependent data set dpk comprises only the index ik.

Hvor én eller flere søkenoder omfatter både en søkeprogramvaremodul og én eller flere dediserte søkeprosessormoduler, omfatter det partisjonsavhengige datasett dPtk både den forhåndsbehandlede partisjon dp og den tilsvarende indeks ik. Where one or more search nodes comprise both a search software module and one or more dedicated search processor modules, the partition-dependent data set dPtk comprises both the pre-processed partition dp and the corresponding index ik.

Endelig er det i henhold til oppfinnelsen fordelaktig at de separate nodesett hver er implementert på én eller flere arbeidsstasjoner forbundet i et datakommunikasj onsnettverk. Finally, according to the invention, it is advantageous that the separate node sets are each implemented on one or more workstations connected in a data communication network.

Søkemotoren i henhold til oppfinnelsen skal nå beskrives uttrykt ved hjelp av ikke-begrensende utførelseseksempler med henvisning til den ledsagende tegning, hvor The search engine according to the invention shall now be described expressed by means of non-limiting exemplary embodiments with reference to the accompanying drawing, where

fig. 1 viser en generell oversikt over arkitekturen i en første utførelse av søkemotoren i henhold til oppfinnelsen, fig. 1 shows a general overview of the architecture in a first embodiment of the search engine according to the invention,

fig. 2 en generell oversikt over arkitekturen i en annen utførelse av en søkemotor i henhold til oppfinnelsen, fig. 2 a general overview of the architecture in another embodiment of a search engine according to the invention,

fig. 3 skjematisk en søkenode med søkeprogramvare og dediserte maskinvaresøkebrikker, fig. 3 schematically a search node with search software and dedicated hardware search chips,

fig. 4 opplegg av en enkeltmodul av søkebrikker, fig. 4 arrangement of a single module of search chips,

fig. 5 skjematisk spørsmålshåndteringen i en dedisert søkebrikke, fig. 5 schematically the question handling in a dedicated search token,

fig. 6 skjematisk prinsippet for ytelsesskalering, fig. 6 schematically the principle of performance scaling,

fig. 7 en flernivås sendenodekonfigurasjon basert på en binær trestruktur, fig. 7 a multi-level sending node configuration based on a binary tree structure,

fig. 8 en oversikt over arkitekturen i en første utførelse i henhold til oppfinnelsen med en angivelse av prinsippet for todimensjonal skalering, og fig. 9 en oversikt over arkitekturen i en annen utførelse av søkemotoren i henhold til oppfinnelsen med en angivelse av prinsippet for todimensjonal skalering. fig. 8 an overview of the architecture in a first embodiment according to the invention with an indication of the principle of two-dimensional scaling, and fig. 9 an overview of the architecture in another embodiment of the search engine according to the invention with an indication of the principle of two-dimensional scaling.

Søking i en stor samling av uavhengige dokumenter er en sterkt parallell oppgave. Søkemotoren i henhold til oppfinnelsen benytter parallellisme på forskjellige nivåer, slik det skal omtales i det følgende. Searching a large collection of independent documents is a highly parallel task. The search engine according to the invention uses parallelism at different levels, as will be discussed below.

Søkemotoren i henhold til oppfinnelsen søker en samling med dokumenter D. Dokumentene kan deles i n partisjoner dh d2, ..., d„. Hver dokumentsamling D eller partisjon d av en dokumentsamling kan forhåndsbehandles for bruk i et maskinvarebasert tekstfiltreringssystem, f.eks. implementert av dedisert maskinvare som søkerens såkalte "Pattern Matching Chip" (PMC) som er vist i søkerens internasjonale patentsøknad nr. PCT/NO99/00344 som det herved skal henvises til. Den forhåndsbehandlede dokumentsamling betegnes Dp og de tilsvarende forhåndsbehandlede dokumentsamlingspartisjoner betegnes <d>pi, <d>P2, .... <d>pn. The search engine according to the invention searches a collection of documents D. The documents can be divided into n partitions dh d2, ..., d„. Each document collection D or partition d of a document collection can be preprocessed for use in a hardware-based text filtering system, e.g. implemented by dedicated hardware such as the applicant's so-called "Pattern Matching Chip" (PMC) which is shown in the applicant's international patent application No. PCT/NO99/00344 to which reference is hereby made. The preprocessed document collection is denoted Dp and the corresponding preprocessed document collection partitions are denoted <d>pi, <d>P2, .... <d>pn.

Programvarebaserte søkesystemer krever en indeks generert fra dokumentsamlingen. Indeksen betegnes / og indeksen svarende til dokumentsamlingspartisjonene dph dp2, ..., dpn, betegnes ih i2, ... in. Software-based search systems require an index generated from the document collection. The index is denoted / and the index corresponding to the document collection partitions dph dp2, ..., dpn, is denoted ih i2, ... in.

Datasettet dpk som kreves for å søke i en partisjon d av en dokumentsamling D, kalles det partisjonsbetingede eller partisjonsavhengige datasett. I et system basert på bare programvare (SW-system) er datasettet dpk indeksen ik, mens i systemer med maskinvare (SW/HW-systemer) omfatter datasettet dPik også den forhåndsbehandlede dokumentsamlingspartisj on dp med den tilsvarende indeks ik, hvor 1< k < n. The data set dpk required to search a partition d of a document collection D is called the partition-conditional or partition-dependent data set. In a system based on software only (SW system), the data set dpk is the index ik, while in systems with hardware (SW/HW systems), the data set dPik also includes the preprocessed document collection partition dp with the corresponding index ik, where 1< k < n.

De vesentlige programvareimplementerte partisjonerings- og forhåndsbehandlingsoperasjoner kan gjengis skjematisk som The essential software-implemented partitioning and preprocessing operations can be schematically represented as

*( D)- >*( dlr.., dn)- >*( dpl,..., dpn)- >dp:k hvor <*>(D) angir en partisjoneringsoperasjon på dataene D, <*>(di, ...,dn) en filtreringsoperasjon, eksempelvis indeksering på di, ...,dn, og dp k er naturligvis det *( D)- >*( dlr.., dn)- >*( dpl,..., dpn)- >dp:k where <*>(D) denotes a partitioning operation on the data D, <*>(di , ...,dn) a filtering operation, for example indexing on di, ...,dn, and dp k is naturally

partisjonsbetingede datasett som i et SW-system alene vil være indeksen ik, og med 1< k < n. partition-conditioned data sets which in a SW system alone will be the index ik, and with 1< k < n.

En søkemotor implementers på en klynge arbeidsstasjoner som er forbundet med bruk av en høyytelses sammenkoblingsbuss. De ikke viste arbeidsstasjoner utgjør da tjeneren til søkesystemet (søketjeneren). Arbeidsstasjonene implementerer noder i søketjeneren. Nodene utfører forskjellige oppgaver og er i henhold til oppfinnelsen implementert som angitt nedenfor. A search engine is implemented on a cluster of workstations connected using a high-performance interconnect bus. The workstations not shown then constitute the server of the search system (the search server). The workstations implement nodes in the search server. The nodes perform different tasks and are, according to the invention, implemented as indicated below.

Nodene kan anses som virtuelle noder fordelt på arbeidsstasjonene, men i en SW/HW-søkemotor må den dediserte søkeprosesseringsmaskin være fysisk til stede i noen arbeidsstasjoner for å støtte de maskinvarebaserte søkenoder. Søkenodeprogramvaren kan da fortsatt være desentralisert. I tillegg kan noen søkenoder i SW/HW-søkemotorer omfatte bare programvare og etter valg være fordelt over mer enn en arbeidsstasjon. • Sendenoder Nal,...,Naa håndterer innkommende spørsmål og sender spørsmålene videre til alle søkenodene. Sendenodene kan også være konfigurert som innsamlingsnoder, og innsamler svarene, dvs. søkeresultatene, på spørsmålene. Ved mottak av svarene, kombinerer sendenodene i innsamlingsmoden søkeresultatene til et endelig resultat. • Søkenoder Npi,...,Npb rommer en partisjon dp av hele datasettet. En søkenode omfatter både den dediserte søkeprogramvare såvel som et antall av de ovennevnte PMC-moduler for maskinvaresøking. • Indekseringsnoder NYi,...,NYg er ansvarlig for å generere indekser for den dediserte søkeprogramvare for et antall søkenoder. For PMC-moduler, filtrerer og forbehandler indekseringsnodene Ny også rådataene. • Innsamlingsnoder N5i,...N5e kan valgfritt være anordnet for å samle svarene og kombinere søkeresultatene til et endelig resultat, i hvilket tilfelle sendenodene Na naturligvis frigjøres fra innsamlingsoppgaven. The nodes can be considered as virtual nodes distributed among the workstations, but in a SW/HW search engine, the dedicated search processing machine must be physically present in some workstations to support the hardware-based search nodes. The search node software can then still be decentralized. In addition, some search nodes in SW/HW search engines may include only software and optionally be distributed over more than one workstation. • Sending nodes Nal,...,Naa handle incoming questions and forward the questions to all search nodes. The sending nodes can also be configured as collection nodes, and collect the answers, i.e. the search results, to the questions. Upon receiving the responses, the sending nodes in the collection mode combine the search results into a final result. • Search nodes Npi,...,Npb contain a partition dp of the entire data set. A search node includes both the dedicated search software as well as a number of the above mentioned PMC modules for hardware search. • Indexing nodes NYi,...,NYg are responsible for generating indexes for the dedicated search software for a number of search nodes. For PMC modules, the New indexing nodes also filter and preprocess the raw data. • Collection nodes N5i,...N5e may optionally be arranged to collect the responses and combine the search results into a final result, in which case the sending nodes Na are naturally released from the collection task.

En første utførelse av søkemotoren i henhold til oppfinnelsen er vist på fig. 1, hvor søkenodene Np er plassert i kolonner S anordnet og forbundet i parallell mellom sendenodene Na og indekseringsnodene Ny. Arrangementet av sendenoder Na er vist skjematisk, men i praksis vil de være anordnet i et flernivås hierarkisk arrangement. A first embodiment of the search engine according to the invention is shown in fig. 1, where the search nodes Np are placed in columns S arranged and connected in parallel between the sending nodes Na and the indexing nodes Ny. The arrangement of transmitter nodes Na is shown schematically, but in practice they will be arranged in a multi-level hierarchical arrangement.

En annen utførelse av søkemotoren i henhold til oppfinnelsen er vist på fig. 2, hvor innsamlingsnoder N5 er anordnet i et tilsvarende arrangement som sendenodene og fritar de siste for innsamlingsoppgaven. Another embodiment of the search engine according to the invention is shown in fig. 2, where collection nodes N5 are arranged in a similar arrangement to the sending nodes and relieve the latter of the collection task.

Det skal forstås at enkeltstående arbeidsstasjoner kan implementere utelukkende en spesifikk nodetype, eller alternativt mer enn en nodetype. Med andre ord kan forskjellige nodetyper være fordelt over klyngen av arbeidsstasjoner. Følgelig implementeres en arkitektur som vist på fig. 1 og 2 av hele klyngen, og disse figurene viser følgelig hverken arbeidsstasjonene eller sammenkoblingsbussen. It should be understood that individual workstations may implement exclusively a specific node type, or alternatively more than one node type. In other words, different node types can be distributed across the cluster of workstations. Accordingly, an architecture as shown in fig. 1 and 2 of the entire cluster, and these figures consequently show neither the workstations nor the interconnection bus.

Nodene skal nå omtales mer detaljert, med utgangspunkt i søkenodene, som er sentrale for søkemotoren i henhold til oppfinnelsen. The nodes will now be described in more detail, starting from the search nodes, which are central to the search engine according to the invention.

En søkenode Np rommer som nevnt en partisjon dp k av hele datasettet. Søkenoden har både en programvaresøkemotor SW og opsjonelt et antall PMC-moduler M som vist på fig. 3. Datasettet for en søkenode N5 genereres på en indekseringsnode NY, slik det om litt skal omtales. As mentioned, a search node Np contains a partition dp k of the entire data set. The search node has both a software search engine SW and optionally a number of PMC modules M as shown in fig. 3. The data set for a search node N5 is generated on an indexing node NY, as will be discussed shortly.

En søkenode kan være utstyrt med et antall x PMC-moduler M for meget hurtig søking som vist på fig. 3. Hver PMC-modul M har^ grupper G med z PMCer som vist på fig. 4, hvor hver gruppe G mottar data fra en enkelt minnebrikke RAM. Disse modulene M vil typisk være et individuelt kretskort. Hver brikke PMC er i stand til å behandle q samtidige spørsmål, som vist skjematisk på fig. 5. En mønsterjevnføringsbrikke PMC kan behandle et datavolum på Tc byte pr. sekund. Antas det at minnemodulen er i stand til å levere Ty byte pr. sekund til mønsterjevnføringsbrikkene PMC, kan en PMC søke gjennom datavolumet Tc byte, hvor Tc = min { Tc, Ty} t, i det gitte tidsrom t. A search node can be equipped with a number x PMC modules M for very fast searching as shown in fig. 3. Each PMC module M has groups G of z PMCs as shown in fig. 4, where each group G receives data from a single memory chip RAM. These modules M will typically be an individual circuit board. Each chip PMC is capable of processing q simultaneous queries, as shown schematically in fig. 5. A pattern equalization chip PMC can process a data volume of Tc bytes per second. It is assumed that the memory module is capable of delivering Ty bytes per second to the pattern smoothing chips PMC, a PMC can search through the data volume Tc bytes, where Tc = min { Tc, Ty} t, in the given time period t.

Som vist på fig. 4, er mønsterjevnføringsbrikkene PMC plassert i moduler M med y grupper G på z brikker PMC, hvor hver gruppe mottar data fra en enkelt minnebrikke RAM, og minnebrikkens størrelse er Tc. Den totale antall datamengde som denne modulen kan gjennomsøke, er Ty = Tc med zq forskjellige spørsmål. As shown in fig. 4, the pattern smoothing chips PMC are placed in modules M with y groups G of z chips PMC, where each group receives data from a single memory chip RAM, and the size of the memory chip is Tc. The total number of data sets that this module can scan is Ty = Tc with zq different queries.

Når x moduler M er anordnet i en søkenode Np, kan disse søkemodulene M søke gjennom en datamengde lik Tr = min Ty- x = { Tc, Ty} txy - da ingen PMC-moduler søker gjennom de samme data er antallet av samtidig løpende spørsmål fortsatt zq. When x modules M are arranged in a search node Np, these search modules M can search through an amount of data equal to Tr = min Ty- x = { Tc, Ty } txy - since no PMC modules search through the same data, the number of simultaneously running questions is still zq.

Den totale avspørringsrate rHW til PMC-modulene i en søkenode kan således uttrykkes som The total polling rate rHW to the PMC modules in a search node can thus be expressed as

hvor Tr angir det totale datavolum på en node. Søkenodeytelsen kan nå beregnes. Gitt at PMC-modulene M (eller en hvilken som helst maskinvareekvivalent) har en avspørringsrate på rHw°g at søkeprogramvaren på en søkenode Np har en avspørringrate på rsw, kan den totale avspørringsrate r^ for søkenodene Ns uttrykkes som where Tr indicates the total data volume on a node. Search node performance can now be calculated. Given that the PMC modules M (or any hardware equivalent) have a polling rate of rHw°g that the search software on a search node Np has a polling rate of rsw, the total polling rate r^ for the search nodes Ns can be expressed as

hvor q>sw angir prosenten av spørsmål q som vil eksekveres i programvare. Den reelle verdi av <q>>sw blir dynamisk oppdatert ved kjøretid fra en statistisk modell. where q>sw denotes the percentage of questions q that will be executed in software. The real value of <q>>sw is dynamically updated at runtime from a statistical model.

Sendenodene Na mottar alle spørsmålene og videresender dem til samtlige søkenoder Np. Svarene fra de forskjellige søkenoder Np kombineres og i tilfelle sendenodene Na fungerer som innsamlingsnoder, returneres et fullstendig svar. The sending nodes Na receive all the questions and forward them to all search nodes Np. The responses from the different search nodes Np are combined and in case the sending nodes Na act as collection nodes, a complete response is returned.

Indekseringsnodene NY samler dokumenter og danner forhåndsbygde indekser for søkeprogramvaren på de forskjellige søkenodene Np. Følgelig kan indekseringsnodene inkorporeres i søkenodene Np med egnet indekseringsprogramvare i de sistnevnte. Maskinvaren er basert på å skanne gjennom hele samlingen av rådata, men noe forbehandling og filtrering av rådataene kan utføres på indekseringsnoden NY. The indexing nodes NY collect documents and form pre-built indexes for the search software on the various search nodes Np. Accordingly, the indexing nodes can be incorporated into the search nodes Np with suitable indexing software in the latter. The hardware is based on scanning through the entire collection of raw data, but some preprocessing and filtering of the raw data can be performed on the indexing node NY.

Vedrørende sammenkobling og datatrafikk kan noen generelle iakttagelser gjøres basert på de følgende omstendigheter. Forskjellige typer av sammenkobling kan benyttes for å sammenkoble nodene. For et lavytelsessystem vil f.eks. et regulært 100 Mbit Fast Ethernet håndtere trafikken. Regarding interconnection and data traffic, some general observations can be made based on the following circumstances. Different types of connection can be used to connect the nodes. For a low-performance system, e.g. a regular 100 Mbit Fast Ethernet handle the traffic.

Trafikken på sammenkoblingen mellom nodene kan deles i to kategorier: The traffic on the connection between the nodes can be divided into two categories:

• Avspørringstrafikk - trafikk mellom sendenoder Na og søkenoder Np. Denne trafikken er hele tiden til stede når søking utføres. Avspørringstrafikken karakteriseres av lave til middels datavolumer og høy frekvens. • Datatrafikk - trafikken mellom indekseringsnoder NY og søkenoder Np. Datatrafikken er kjennetegnet ved høye datavolumer og lav frekvens (typisk en sats pr. dag). • Polling traffic - traffic between sending nodes Na and search nodes Np. This traffic is always present when searching is performed. The polling traffic is characterized by low to medium data volumes and high frequency. • Data traffic - the traffic between indexing nodes NY and search nodes Np. Data traffic is characterized by high data volumes and low frequency (typically one rate per day).

En typisk avspørring vil overføre en avspørringsstreng fra sendenoden Na til søkenoden Np. Så vil søkenoden Np svare med en sekvens av dokumenter som passer til spørsmålet. Etter valg skal sendenoden Na også være i stand til å avspørre søkenoden om URL-strengene til dokumentet, men dette er ansett uvesentlig i den foreliggende sammenheng. A typical query will transmit a query string from the sending node Na to the searching node Np. Then the search node Np will respond with a sequence of documents that match the query. By choice, the sending node Na must also be able to query the search node about the URL strings of the document, but this is considered unimportant in the present context.

Arkitekturen til søkemotoren i henhold til oppfinnelsen kan, basert på de ovenstående betraktninger, nå lett skaleres i to dimensjoner, nemlig henholdsvis datavolum- og ytelsesdimensjonen. The architecture of the search engine according to the invention can, based on the above considerations, now be easily scaled in two dimensions, namely the data volume and performance dimensions respectively.

Datavolumskalering oppnås ved å addere flere datasettpartisjoner dpk, med andre ord adderes flere grupper eller kolonner S av søkenoder Np. Også antall indekseringsnoder NY og sendenoder Na kan økes etter behov for å være i stand til å håndtere flere datasettpartisjoner dpk. Data volume scaling is achieved by adding more data set partitions dpk, in other words adding more groups or columns S of search nodes Np. Also, the number of indexing nodes NY and sending nodes Na can be increased as needed to be able to handle more dataset partitions dpk.

Ytelsesskalering kan oppnås i søkemotorarkitekturen ved replikasjon av datasettpartisjoner dPik med en tilsvarende økning i antallet søkenoder Np, ved å øke antallet som vist på fig. 6. Når det benyttes replikasjon av datasettpartisjoner dp k for å skalere systemytelsen, utgjør hver søkenode Np en del av søkenodegruppen S. Med v partisjoner d fås Si,...SV og antall søkenoder i hver gruppe Sp blir da lik h som er skaleringsfaktoren, slik at det ialt fås et antall b søkenoder, hvor b = v- h. Kolonnen Spj rommer generelt søkenodene Np^j+i, Np *j+2,...Np;*j+h, idet <*>j = h(j-l) og eksempelvis vil da kolonnen Spj for_/ = 3 og h = 4 omfatte søkenodene Np;9, Np;io> Np^i, Np!]2. Performance scaling can be achieved in the search engine architecture by replication of data set partitions dPik with a corresponding increase in the number of search nodes Np, by increasing the number as shown in fig. 6. When replication of data set partitions dp k is used to scale system performance, each search node Np forms part of the search node group S. With v partitions d, Si,...SV are obtained and the number of search nodes in each group Sp is then equal to h, which is the scaling factor , so that a total of b search nodes are obtained, where b = v- h. The column Spj generally contains the search nodes Np^j+i, Np *j+2,...Np;*j+h, as <*>j = h(j-l) and, for example, the column Spj for_/ = 3 and h = 4 will include the search nodes Np;9, Np;io> Np^i, Np!]2.

Skalering av datavolumet kan føre til at antallet søkenoder Np som mottar spørsmålet kringkastet fra en sendenode Na, blir meget stort. Arkitekturen løser dette problemet ved å benytte flere nivåer X av sendenoder Na - dette er vist på fig. 7 som gjengir arrangementet med sendenodene Na som noder i et parti av et binært datafordelingstre. Et binært datafordelingstre kan uten problemer tillate en lineær skalerbarhet. Tilsvarende binære datafordelingstrær av denne art har allerede blitt vist i søkerens ovennevnte internasjonale patentsøknad PCT/NO99/00344, som viser konfigurasjonen av en virkelig implementering av mønsterjevnføringsbrikken PMC. Antallet sendenoder Na i et regulært binært tre er naturligvis 2X' 1 på hvert nivå X, X Scaling the data volume can cause the number of search nodes Np that receive the question broadcast from a sending node Na to become very large. The architecture solves this problem by using several levels X of transmitter nodes Na - this is shown in fig. 7 which reproduces the arrangement with the sending nodes Na as nodes in a part of a binary data distribution tree. A binary data distribution tree can easily allow a linear scalability. Corresponding binary data distribution trees of this kind have already been shown in the applicant's above-mentioned international patent application PCT/NO99/00344, which shows the configuration of a real implementation of the pattern smoothing chip PMC. The number of sender nodes Na in a regular binary tree is naturally 2X' 1 at each level X, X

= 1,2,3--- En senderotnode befinner seg på det første nivå og opptil og innbefattet et gitt nivå X er det totalt 2X<->1 sendenoder i treet. I tilfelle sendenodene Na også benyttes som innsamlingsnoder, dvs. for å samle inn svarene som returneres fra søkenodene, blir resultatene av en søking kombinert i sendenodene, og rotsendenoden gir ut det endelige svar på spørsmålet. Imidlertid er det intet i veien for at søkemotoren i henhold til oppfinnelsen utføres med et separat datainnsamlingstre forbundet med søkenodene og omfattende innsamlingsnodene N8 som samler og gir ut det endelige resultat av en avspørring på innsamlingsrotnoden til datasamlingstreet, dvs. datainnsamlingsnodetreet. Innsamlingsnodetreet kunne da være et speilbilde av sendenodetreet. = 1,2,3--- A transmitter root node is located at the first level and up to and including a given level X there are a total of 2X<->1 transmitter nodes in the tree. In case the sending nodes Na are also used as collection nodes, i.e. to collect the answers returned from the search nodes, the results of a search are combined in the sending nodes, and the root sending node outputs the final answer to the question. However, there is nothing to prevent the search engine according to the invention being performed with a separate data collection tree connected to the search nodes and including the collection nodes N8 which collects and issues the final result of a query on the collection root node of the data collection tree, i.e. the data collection node tree. The collection node tree could then be a mirror image of the sending node tree.

En skjematisk opplegg av en skalerbar søkemotorarkitektur i henhold til oppfinnelsen er vist på fig. 8, som illustrerer prinsippet for todimensjonal skalering. Det vil ses at sendenodene Na utgjør en front i en søkemotor og ruter spørsmålene til søkenodene Np og mottar søkeresultatene fra søkenodene, hvor den aktuelle søking av den indekserte data utføres. I tilfellet det benyttes dediserte innsamlingsnoder N8 som vist på fig. 9, som ellers er lik fig. 8, vil søkeresultatene naturligvis bli returnert til disse. Med søkenodene Na arrangert i en trekonfigurasjon som vist på fig. 9, vil innsamlingsnodenettverket som bakside av søkemotoren utgjøre et speilbilde av sendenodenettverket. Indekserings-("spidering"-) nodene Nr utgjør også en bakside av søkemotoren og samler inn data fra f.eks. fra Internett og indekserer dataene for å generere en søkbar katalog. Ved å addere søkenoder Np eller mer bestemt søkenodegrupper S horisontalt skalerer søkemotoren lineært i datavolumet, idet hver ekstra søkenode eller søkenodegruppe inneholder forskjellige data. Typiske kapasitetsparametre for en søkemotor kan som et ikke-begrensende eksempel gis som følger. En søkenode Np kan typisk håndtere 8 000 000 sidesyn (page views) pr. dag i en katalog på 5 000 000 dokumenter. For en skalerbar søkemotor kan hver søkenode Np typisk romme 5 000 000 entydig indekserte dokumenter, noe som impliserer at 40 søkenoder i en rad er tilstrekkelig til å vedlikeholde en katalog på A schematic layout of a scalable search engine architecture according to the invention is shown in fig. 8, which illustrates the principle of two-dimensional scaling. It will be seen that the sending nodes Na constitute a front in a search engine and route the questions to the search nodes Np and receive the search results from the search nodes, where the relevant search of the indexed data is performed. In the case where dedicated collection nodes N8 are used as shown in fig. 9, which is otherwise similar to fig. 8, the search results will naturally be returned to these. With the search nodes Na arranged in a tree configuration as shown in fig. 9, the collection node network as the back of the search engine will form a mirror image of the sending node network. The indexing ("spidering") nodes Nr also form a backside of the search engine and collect data from e.g. from the Internet and indexes the data to generate a searchable directory. By adding search nodes Np or more specifically search node groups S horizontally, the search engine scales linearly in the data volume, as each additional search node or search node group contains different data. Typical capacity parameters for a search engine can be given as a non-limiting example as follows. A search node Np can typically handle 8,000,000 page views per day in a catalog of 5,000,000 documents. For a scalable search engine, each search node Np can typically accommodate 5,000,000 uniquely indexed documents, which implies that 40 search nodes in a row are sufficient to maintain a catalog of

200 000 000 dokumenter. Skalering av ytelsen, dvs. økning av trafikkapasiteten, krever at flere rader av søkenoder Np med de samme data legges til, slik at søkenodene i en enkel kolonne eller gruppe S inneholder identiske data. En gruppe eller kolonne S på 10 søkenoder Np vil følgelig være i stand til å håndtere 80 000 000 sidesyn pr. dag, idet 40 kolonner da kan håndtere en total på 3 200 000 000 sidesyn pr. dag. 200,000,000 documents. Scaling the performance, i.e. increasing the traffic capacity, requires that several rows of search nodes Np with the same data be added, so that the search nodes in a single column or group S contain identical data. A group or column S of 10 search nodes Np will therefore be able to handle 80,000,000 page views per day, as 40 columns can then handle a total of 3,200,000,000 page views per day.

En ytterligere vesentlig fordel ved en søkemotor i henhold til oppfinnelsen med arkitekturen skalerbar som her vist, er at avspørringsresponstiden essensielt er uavhengig av katalogstørrelsen, da hvert spørsmål eksekveres i parallell på alle søkenoder Np, og at arkitekturen er iboende feiltolerant, slik at feil i de individuelle nodene ikke vil resultere i et systemsammenbrudd, bare temporært redusere ytelsen inntil feilen er korrigert. A further significant advantage of a search engine according to the invention with the architecture scalable as shown here is that the query response time is essentially independent of the directory size, as each query is executed in parallel on all search nodes Np, and that the architecture is inherently error tolerant, so that errors in the individual nodes will not result in a system crash, only temporarily reduce performance until the error is corrected.

Den i prinsippet ubegrensede lineære skalerbarhet av datavolum og trafikkvolum som kan skaffes i en søkemotor i henhold til oppfinnelsen står dessuten i skarp kontrast til søkemotorer i henhold til kjent teknikk hvor søkekostnaden typisk øker eksponensielt med data- eller trafikkvolumøkningen og hvor den maksimale kapasitet til søkemotorer i henhold til kjent teknikk typisk vil nås ved lave til moderate volumer. Med søkemotoren i henhold til oppfinnelsen vil kostnaden høyst skalere lineært med økningen i kapasitet, avhengig i realiteten av hvorvidt kapasitetsøkningen er skaffet ved å addere utelukkende SW-søkenoder eller også SW/HW-søkenoder. Endelig tilbyr søkemotoren i henhold til oppfinnelsen den fordel at hver node i praksis kan implementeres med standard, billige, kommersielt tilgjengelige PCer, men alternativt også med mer kostbare UNIX-baserte tjenere som f.eks. Sun- eller Alpha-datamaskiner slik de for tiden tilbys. The in principle unlimited linear scalability of data volume and traffic volume that can be obtained in a search engine according to the invention is also in sharp contrast to search engines according to prior art where the search cost typically increases exponentially with the increase in data or traffic volume and where the maximum capacity of search engines in according to the prior art will typically be reached at low to moderate volumes. With the search engine according to the invention, the cost will at most scale linearly with the increase in capacity, depending in reality on whether the increase in capacity is obtained by adding exclusively SW search nodes or also SW/HW search nodes. Finally, the search engine according to the invention offers the advantage that each node can in practice be implemented with standard, cheap, commercially available PCs, but alternatively also with more expensive UNIX-based servers such as e.g. Sun or Alpha computers as currently offered.

Claims (11)

1. Søkemotor med todimensjonalt lineært skalerbar, parallell arkitektur for søking i en samling av tekstdokumenter D, hvor dokumentene kan deles i et antall partisjoner di, d2,... d„, hvor samlingen av dokumenter D er forhåndsbehandlet i et tekstfiltreringssystem, slik at det fås en forhåndsbehandlet dokumentsamling Dp og tilsvarende forhåndsbehandlede partisjoner dpi, dp2,... dpn, hvor en indeks / kan genereres fra dokumentsamlingen D slik at for hver tidligere forhåndsbehandlet partisjon dpi, dp2,..., dpn fås en tilsvarende indeks i2,..., i„, hvor søking i en partisjon d av dokumentsamlingen D finner sted med et partisjonsavhengig datasett dpk>i og hvor søkemotoren omfatter databehandlingsenheter som danner sett av noder (N) forbundet i et nettverk, karakterisert ved at et første sett av noder omfatter a sendenoder (Nai, ..., Naa), et annet sett av noder omfatter b søkenoder (Npi, ..., Npb), et tredje sett av noder omfatter g indekseringsnoder (Nyl, ..., NYg), og et valgfritt fjerde sett av noder omfatter e innsamlingsnoder (NSi, ..., N8e), at sendenodene (Na) er forbundet i en flernivås konfigurasjon i nettverket, at søkenodene (Np) er gruppert i v kolonner (S) som er forbundet i parallell i nettverket mellom sendenodene (Na) og en indekseringsnode (Ny), at sendenodene (Na) er innrettet til å behandle søkespørsmål og søkesvar, idet søkesvarene sendes videre til alle søkenoder (Np) og i tilfelle innsamlingsnoder (N5) ikke foreligger, returneres søkesvarene til sendenodene (Na) og kombineres deri til et endelig søkeresultat, at søkenodene (Np) hver er innrettet til å romme søkeprogramvare, at indekseringsnodene (Ny) er innrettet til generelt å generere indekser i for søkeprogramvaren og opsjonelt for å generere partisjonsavhengige datasett dp k til søkenoder (Np) som omfatter en søkeprosessormodul, at i tilfelle innsamlingsnode (N8) foreligger, er disse forbundet i en flernivås konfigurasjon i nettverket lik den for sendenodene (Na), og innrettet til å samle svar på søkespørsmål og gi ut et endelig resultat og således avlaste søkenodene for denne oppgave, at antallet v av søkenodekolonner S skalerer med antallet n av partisjoner d, slik at det implementeres en skalering av datavolumet, og at antallet b/ v av søkenoder (Np) i hver søkenodekolonne (S) skalerer med en estimert eller forventet trafikkbelastning, slik at det implementeres en skalering av ytelse, hvorved i et hvert tilfelle søking i dokumentsamlingen D finner sted ved at hver av søkenodekolonnene (S) rommer ett av de partisjonsavhengige datasett dpk og alle søkenoder (Np) i en søkenodekolonne S hver rommer identiske partisjonsavhengige datasett dpk-1. Search engine with two-dimensional linearly scalable, parallel architecture for searching a collection of text documents D, where the documents can be divided into a number of partitions di, d2,... d„, where the collection of documents D is pre-processed in a text filtering system, so that a preprocessed document collection Dp and corresponding preprocessed partitions dpi, dp2,... dpn are obtained, where an index / can be generated from the document collection D so that for each previously preprocessed partition dpi, dp2,..., dpn a corresponding index i2 is obtained, ..., i„, where searching in a partition d of the document collection D takes place with a partition-dependent data set dpk>i and where the search engine comprises data processing units forming sets of nodes (N) connected in a network, characterized in that a first set of nodes include a sending nodes (Nai, ..., Naa), another set of nodes includes b search nodes (Npi, ..., Npb), a third set of nodes includes g indexing nodes (Nyl, ..., NYg), and an optional fourth set of nodes includes e collection nodes (NSi, ..., N8e), that the sending nodes (Na) are connected in a multi-level configuration in the network, that the search nodes (Np) are grouped in v columns (S) which are connected in parallel in the network between the sending nodes (Na) and an indexing node (Ny), that the sending nodes (Na) are designed to process search questions and search answers, as the search answers are forwarded to all search nodes (Np) and in the event that collection nodes (N5) are not available, the search answers are returned to the sending nodes (Na) and combined there into a final search result, that the search nodes (Np) are each designed to accommodate search software, that the indexing nodes (Ny) are arranged to generally generate indexes i for the search software and optionally to generate partition-dependent data sets dp k to search nodes (Np) comprising a search processor module, that if collection nodes (N8) are present, these are connected in a multi-level configuration in the network similar to that of the sending nodes (Na), and arranged to collect answers to search questions and issue a final result and thus relieve the search nodes for this task, that the number v of search node columns S scales with the number n of partitions d, so that a scaling of the data volume is implemented, and that the number b/v of search nodes (Np) in each search node column (S) scales with an estimated or expected traffic load, so that it is implemented a scaling of performance, whereby in each case searching in the document collection D takes place by each of the search node columns (S) containing one of the partition-dependent data sets dpk and all search nodes (Np) in a search node column S each containing identical partition-dependent data sets dpk- 2. Søkemotor i henhold til krav 1, karakterisert ved at flernivåkonfigurasjonen av sendenoder (Na) og de valgfrie innsamlingsnoder (N8) i nettverket er dannet som hierarkiske trestrukturer.2. Search engine according to claim 1, characterized in that the multi-level configuration of sending nodes (Na) and the optional collection nodes (N8) in the network are formed as hierarchical tree structures. 3. Søkemotor i henhold til krav 2, karakterisert ved at flernivåkonfigurasjonen av de valgfrie innsamlingsnoder (Ns) er et speilbilde av flernivåkonfigurasjonen av sendenodene (Na).3. Search engine according to claim 2, characterized in that the multi-level configuration of the optional collection nodes (Ns) is a mirror image of the multi-level configuration of the sending nodes (Na). 4. Søkemotor i henhold til krav 2, karakterisert ved at de hierarkiske trestrukturer er binære trestrukturer.4. Search engine according to claim 2, characterized in that the hierarchical tree structures are binary tree structures. 5. Søkemotor i henhold til krav 1, karakterisert ved at hver av søkenodene (Np) omfatter en søkeprogramvaremodul (SW).5. Search engine according to claim 1, characterized in that each of the search nodes (Np) comprises a search software module (SW). 6. Søkemotor i henhold til krav 5, karakterisert ved at i det minste noen av søkenodene (Np) omfatter minst en dedisert søkeprosessormodul (M), idet hver dedisert søkeprosessormodul (M) er realisert med en eller flere dediserte søkeprosessorbrikker (PMC) som hver er innrettet til parallell håndtering av et antall q søkespørsmål.6. Search engine according to claim 5, characterized in that at least some of the search nodes (Np) comprise at least one dedicated search processor module (M), each dedicated search processor module (M) being realized with one or more dedicated search processor chips (PMC) each of which is designed for parallel handling of a number q search query. 7. Søkemotor i henhold til krav 6, karakterisert ved at de dediserte søkeprosessorbrikker (PMC) er anordnet i søkeprosessormoduler (M) i y prosessorgrupper (G), hver med z søkeprosessorbrikker (PMC) og forbundet med og innrettet til å motta data fra et minne (RAM) tilordnet prosessorgruppen (G).7. Search engine according to claim 6, characterized in that the dedicated search processor chips (PMC) are arranged in search processor modules (M) in y processor groups (G), each with z search processor chips (PMC) and connected to and arranged to receive data from a memory (RAM) assigned to the processor group (G). 8. Søkemotor i henhold til krav 1, karakterisert ved at en økning i antall partisjoner d ved skaleringen av datavolumet ledsages av en tilsvarende økning i antall sendenoder (Na) og i tilfelle også i antall innsamlingsnoder (N5) og opsjonelt også i antall indekseringsnoder (Ny).8. Search engine according to claim 1, characterized in that an increase in the number of partitions d when scaling the data volume is accompanied by a corresponding increase in the number of sending nodes (Na) and in some cases also in the number of collecting nodes (N5) and optionally also in the number of indexing nodes (Ny). 9. Søkemotor i henhold til krav 1, hvor hver av søkenodene (Np) bare omfatter en søkeprogramvaremodul (S W) karakterisert ved at det partisjonsavhengige dpk datasett bare omfatter indeksen ik_9. Search engine according to claim 1, where each of the search nodes (Np) only comprises a search software module (S W) characterized in that the partition-dependent dpk data set only comprises the index ik_ 10. Søkemotor i henhold til krav 1, hvor en eller flere søkenoder omfatter både en søkeprogramvaremodul (SW) og en eller flere dediserte søkeprosessormoduler (M), karakterisert ved at det partisjonsavhengige datasett dpk omfatter både den forhåndsbehandlede partisjon dp og den tilsvarende indeks ib10. Search engine according to claim 1, where one or more search nodes comprise both a search software module (SW) and one or more dedicated search processor modules (M), characterized in that the partition-dependent data set dpk includes both the pre-processed partition dp and the corresponding index ib 11. Søkemotor i henhold til krav 1, karakterisert ved at de separate nodesett (Na, Np, Ny, N5) hver er implementert på én eller flere arbeidsstasjoner forbundet i et datakommunikasjonsnettverk.11. Search engine according to claim 1, characterized in that the separate node sets (Na, Np, Ny, N5) are each implemented on one or more workstations connected in a data communication network.
NO20002419A 1999-05-10 2000-05-10 Search engine with two-dimensional linear scalable, parallel architecture NO313347B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
NO20002419A NO313347B1 (en) 1999-05-10 2000-05-10 Search engine with two-dimensional linear scalable, parallel architecture

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NO992269A NO992269D0 (en) 1999-05-10 1999-05-10 ° engine with two-dimensional scalable, parallel architecture
NO20002419A NO313347B1 (en) 1999-05-10 2000-05-10 Search engine with two-dimensional linear scalable, parallel architecture

Publications (3)

Publication Number Publication Date
NO20002419D0 NO20002419D0 (en) 2000-05-10
NO20002419L NO20002419L (en) 2000-11-13
NO313347B1 true NO313347B1 (en) 2002-09-16

Family

ID=26648963

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20002419A NO313347B1 (en) 1999-05-10 2000-05-10 Search engine with two-dimensional linear scalable, parallel architecture

Country Status (1)

Country Link
NO (1) NO313347B1 (en)

Also Published As

Publication number Publication date
NO20002419D0 (en) 2000-05-10
NO20002419L (en) 2000-11-13

Similar Documents

Publication Publication Date Title
CA2373453C (en) A search engine with two-dimensional linearly scalable parallel architecture
US8799264B2 (en) Method for improving search engine efficiency
US6377984B1 (en) Web crawler system using parallel queues for queing data sets having common address and concurrently downloading data associated with data set in each queue
Tomasic et al. Performance of inverted indices in shared-nothing distributed text document information retrieval systems
US8433816B2 (en) Network topology for a scalable multiprocessor system
US20070016555A1 (en) Indexing method of database management system
WO2009068072A1 (en) Scalable associative text mining network and method
Arroyuelo et al. Distributed search based on self-indexed compressed text
Cacheda et al. Performance analysis of distributed information retrieval architectures using an improved network simulation model
CN1858721A (en) Method and device for processing memory access in multi-processor system
Sharma A generic machine for parallel information retrieval
NO313347B1 (en) Search engine with two-dimensional linear scalable, parallel architecture
Hsu et al. Information retrieval with commonsense knowledge
Poomagal et al. Optimized k-means clustering with intelligent initial centroid selection for web search using URL and tag contents
Gupta et al. CrawlPart: Creating crawl partitions in parallel crawlers
Bader An improved, randomized algorithm for parallel selection with an experimental study
CN111190991A (en) Unstructured data transmission system and interaction method
Storchi et al. Linear algebra computation benchmarks on a model grid platform
MacFarlane et al. Parallel computing in information retrieval–an updated review
Dong et al. A parallel crawling schema using dynamic partition
Yuen et al. IDS: an intelligent document system
Alqrainy et al. DAS: Distributed analytics system for Arabic search engines
Aberer et al. Building a peer-to-peer full-text Web search engine with highly discriminative keys
Hamdi Embedding hierarchical networks into the hypercube
Cleary et al. Creating a semantic-web interface with virtual reality

Legal Events

Date Code Title Description
CREP Change of representative

Representative=s name: ZACCO NORWAY AS, POSTBOKS 2003 VIKA, 0125 OSLO, NO

CHAD Change of the owner's name or address (par. 44 patent law, par. patentforskriften)

Owner name: JOLLIFY MANAGEMENT LIMITED, VG

MK1K Patent expired