NO329298B1 - Full-text searchable index for effective history search in frequently changing document collections - Google Patents
Full-text searchable index for effective history search in frequently changing document collections Download PDFInfo
- Publication number
- NO329298B1 NO329298B1 NO20091623A NO20091623A NO329298B1 NO 329298 B1 NO329298 B1 NO 329298B1 NO 20091623 A NO20091623 A NO 20091623A NO 20091623 A NO20091623 A NO 20091623A NO 329298 B1 NO329298 B1 NO 329298B1
- Authority
- NO
- Norway
- Prior art keywords
- document
- list
- index
- partition
- level
- Prior art date
Links
- 238000005192 partition Methods 0.000 claims description 65
- 238000012217 deletion Methods 0.000 claims description 13
- 230000037430 deletion Effects 0.000 claims description 13
- 238000007792 addition Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 7
- 230000003190 augmentative effect Effects 0.000 claims description 3
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
En tekstindeks omfatter et hierarki av inverterte underindekser og tillater tidsbasert søking i en dokumentsamling.A text index includes a hierarchy of inverted subindexes and allows time-based searching in a document collection.
Description
OPPFINNELSENS OMRÅDE FIELD OF THE INVENTION
Oppfinnelsen angår en indeks for fulltekstsøk som muliggjør effektiv historiesøk i dokumentsamlinger som hyppig forandrer seg. Spesielt angår den foreliggende oppfinnelse en indeks med en tidsbasert struktur slik at en dokumentsamling kan søkes på et hvilket som helst bestemt tidspunkt i dets historie som gitt ved en tidsgranularitet. The invention relates to an index for full-text searches that enables efficient history searches in document collections that frequently change. In particular, the present invention relates to an index with a time-based structure so that a document collection can be searched at any particular time in its history as given by a time granularity.
KJENT TEKNIKK PRIOR ART
Tidsbaserte databaser har vært gjenstand for forskning innenfor feltet informasjonsvitenskap og -teknologi gjennom flere år, med hovedvekt på å indeksering og avspørring av strukturerte data. Time-based databases have been the subject of research in the field of information science and technology for several years, with the main emphasis on indexing and querying of structured data.
"Snapshof-isolasjon er benyttet i databaser for å tillate kjøring av søkespørsmål i en begrenset og nylig historie for oppdateringer av databasen. Internasjonal patentsøknad nr. PCT/NO2008/000445 viser blant annet snapshotisolasjonsmetoder og implementeringen av disse for ustrukturert tekstindeksering og tekstsøking. "Snapshof isolation is used in databases to allow the execution of search queries in a limited and recent history of updates to the database. International patent application No. PCT/NO2008/000445 shows, among other things, snapshot isolation methods and their implementation for unstructured text indexing and text searching.
En artikkel av Klaus Berberich, Srikanta Bedathur, Thomas Neumann, Gerhard Weikum, "A time machine for text search", Proceedings of the 30th annual international ACM SIGR conference on research and development in information retrieval, juli 23-27, 2007, Amsterdam, Nederland r http:// Dortal. acm. org/ citation. cfm?id= 1277741. 1277831 & coll=ACM& dl=AC M& CFID=14908098& CFTOKEN=513613851 An article by Klaus Berberich, Srikanta Bedathur, Thomas Neumann, Gerhard Weikum, "A time machine for text search", Proceedings of the 30th annual international ACM SIGR conference on research and development in information retrieval, July 23-27, 2007, Amsterdam, The Netherlands r http:// Dortal. acc. org/citation. cfm?id= 1277741. 1277831 & coll=ACM& dl=AC M& CFID=14908098& CFTOKEN=513613851
viser en metode for indeksering og søking av en tekstsamling med det formål å redusere granulariteten til tidsspesiifkasjonen i søk, slik at indeksens størrelse kan reduseres. Uheldigvis reduserer også reduksjonen i tidsgranlularitet presisjonen til søkespørsmålene. shows a method for indexing and searching a text collection for the purpose of reducing the granularity of time specification in search, so that the size of the index can be reduced. Unfortunately, the reduction in time granularity also reduces the precision of the search queries.
En artikkel av K. Nørvåg og A. O. N. Nybø. "DyST: Dynamic and Scalable Temporal Text Indexing" viser et annet forsøk på å implementere tekstindeksering i tidsdomenet An article by K. Nørvåg and A. O. N. Nybø. "DyST: Dynamic and Scalable Temporal Text Indexing" shows another attempt to implement text indexing in the time domain
r http:// ieeexplore. ieee. org/ xpls/ abs all. isp?arnumber=1636000] r http:// ieeexplore. eeee. org/ xpls/ abs all. isp?arnumber=1636000]
En regulær, invertert indeks kan utføre oppslag for en søketerm i to plateaksesser (en for å lese leksikoninnførsel; en for å lese posteringslisten). Tidsbaserte indekser har en mye større administrasjon oppslagstid. Ved oppslagstid må eksisterende, tidsbaserte indeksstrukturer enten måtte utføre mange plateaksesser for hver søketerm eller (i tilfelle av dokumentsamlinger som hyppig endrer seg) behandle meget store datavolumer på grunn av alle endringene i tidsintervallet som avspørres. A regular, inverted index can perform lookups for a search term in two disk accesses (one to read the lexicon entry; one to read the entry list). Time-based indexes have a much larger administration lookup time. At lookup time, existing time-based index structures either have to perform many disk accesses for each search term or (in the case of document collections that change frequently) process very large volumes of data due to all the changes in the time interval being queried.
I begge tilfeller kan det oppstå en uønsket stor administrasjon. In both cases, an unwanted large administration can arise.
OPPFINNELSENS HENSIKTER OBJECTS OF THE INVENTION
I lys av manglene ved de nåværende tidsbaserte indekser er det en hovedhensikt med den foreliggende oppfinnelse å skaffe en indeks som øker aksessraten for søkespørsmål og samtidig begrenser volumet av data som må behandles for hvert søkespørsmål. In light of the shortcomings of the current time-based indexes, it is a main purpose of the present invention to provide an index that increases the access rate for search queries and at the same time limits the volume of data that must be processed for each search query.
En annen hensikt er å skaffe en indeks som tillater tekstsøking i en dokumentsamling slik den foreligger på et hvilket som helst bestemt tidspunkt. Another purpose is to provide an index that allows text searching in a document collection as it exists at any particular time.
Endelig er det en hensikt er å tillate effektivt historiesøk i dokumentsamlinger som hyppig endrer seg. Finally, one purpose is to allow efficient history searching in document collections that change frequently.
SAMMENDRAG AV OPPFINNELSEN SUMMARY OF THE INVENTION
De ovennevnte hensikter så vel som ytterligere trekk og fordeler realiseres i henhold til foreliggende oppfinnelser med en indeks som omfatter et hierarki av inverterte indekser med varierende tidsgranularitet, hvor hvert nivå av hierarkiet omfatter et antall partisjoner identifisert av et nivånummer og tidsmarkering etter den siste tilføyelse av et dokument, hvor hver partisjon i seg selv er en forsterket, invertert indeks som inneholder alle tilføyelser og alle slettinger av dokumenter i intervallet fra slutten av den foregående partisjon inntil markering, og hvor partisjonen inneholder deltalister for hvert symbol for et dokument. The above purposes as well as further features and advantages are realized according to the present inventions with an index comprising a hierarchy of inverted indexes with varying time granularity, each level of the hierarchy comprising a number of partitions identified by a level number and time stamp after the last addition of a document, where each partition is itself an augmented, inverted index containing all additions and all deletions of documents in the interval from the end of the preceding partition until markup, and where the partition contains delta lists for each symbol of a document.
Ytterligere trekk og fordeler vil fremgå av vedføyde uselvstendige krav. Further features and benefits will appear from the attached independent requirements.
Oppfinnelsen vil bedre forstås ved å lese den detaljerte drøftelse av konstruksjonen og bruken av indeksen i henhold til den foreliggende oppfinnelse og lest i samband med den vedføyde tegning, på hvilken fig. 1 viser opplegg og strukturen av en invertert indeks som kjent i teknikken, The invention will be better understood by reading the detailed discussion of the construction and use of the index according to the present invention and read in conjunction with the attached drawing, in which fig. 1 shows the layout and structure of an inverted index as known in the art,
fig. 2 er en generell representasjon av indeksstrukturen i henhold til den foreliggende oppfinnelse, og fig. 2 is a general representation of the index structure according to the present invention, and
fig. 3 indekseringen og kodingen av en liste over symboler for slettede dokumenter. fig. 3 the indexing and encoding of a list of symbols for deleted documents.
DEFINISJONER OG BAKGRUNN DEFINITIONS AND BACKGROUND
Noen begreper som er sentrale i den foreliggende oppfinnelse skal nå defineres. Some concepts that are central to the present invention will now be defined.
Et dokument er enheten som indekseres. Et dokument kan være en tekstfil, en databasepost eller enhver logisk enhet av data. A document is the unit that is indexed. A document can be a text file, a database record, or any logical unit of data.
En dokumentidentifikator (docid) er et heltall som entydig identifiserer dokumentet. A document identifier (docid) is an integer that uniquely identifies the document.
Et dokument består av en sekvens av symboler. Symboler er typiske ord eller tall, men kan også være URLer, ISBN-numre, postkoder, fraser, navn etc. A document consists of a sequence of symbols. Symbols are typically words or numbers, but can also be URLs, ISBN numbers, postcodes, phrases, names, etc.
En invertert indeks er en velkjent indeksstruktur benyttet for fulltekstsøk. Den består av to hoveddeler: en posterings/ il og leksikonet. Posteringsfilen består av mange posteringslister, en for hvert symbol indeksert av indeksen. Posteringslisten er logisk en liste over forekomsten av symbolet. Listen blir normalt sortert av docid. En dokumentnivåliste har en innførsel for hvert dokument som symbolet forekommer i. Innførselen i en slik liste inneholder normalt docid og antallet ganger symbolet forekommer i dokumentet. En symbolnivåliste omfatter en innførsel for hver forekomst av symbolet. Innførselen i denne liste inneholder docid og posisjonen av symbolet innenfor dokumentet. Hvis det er flere innførsler for et dokument, sorteres de på økende posisjon. Den foreliggende oppfinnelse støtter begge disse typer, men også andre variasjoner som inneholder ytterligere informasjon i hver posteringsinnførsel. An inverted index is a well-known index structure used for full-text searching. It consists of two main parts: a posting file and the encyclopedia. The posting file consists of many posting lists, one for each symbol indexed by the index. The posting list is logically a list of occurrences of the symbol. The list is normally sorted by docid. A document level list has an entry for each document in which the symbol occurs. The entry in such a list normally contains docid and the number of times the symbol occurs in the document. A symbol level list includes an entry for each instance of the symbol. The entry in this list contains the docid and the position of the symbol within the document. If there are multiple entries for a document, they are sorted in ascending order. The present invention supports both of these types, but also other variations that contain additional information in each posting entry.
Leksikonet er en avbildning fra symbolet til forskyvningen i posteringsfilen for symbolet. Det kan implementeres av et B-tre eller en lignende indeksstruktur. The lexicon is a mapping from the symbol to the offset in the record file for the symbol. It can be implemented by a B-tree or similar index structure.
En invertert indeks for symbolnivå er vist på fig. 1. Ordene "the" og "them" er indeksert. Ordet "the" har 45 forekomster og det posteringsliste starter ved forskyvning 76416 i posteringsfilen og har en størrelse på 103 byte. Den første forekomst i dokument 3 er ved posisjon 17 og den siste i dokument 231 ved posisjon 3. Posteringslisten for ordet "them" begynner straks etterpå med dets første forekomst i dokument 4 ved posisjon 48. An inverted symbol level index is shown in fig. 1. The words "the" and "them" are indexed. The word "the" has 45 occurrences and the posting list starts at offset 76416 in the posting file and has a size of 103 bytes. The first occurrence in document 3 is at position 17 and the last in document 231 at position 3. The posting list for the word "them" begins immediately afterwards with its first occurrence in document 4 at position 48.
Det antas at dokumenter tilføyes etter hvert som tiden går. Dokumenter nummereres med en voksende dokumentidentifikator (docid) og hvert dokument identifiseres med et tidsmerké. Tidsmarkeringen svarer til et eller annet reelt tidspunkt så som antallet dager, timer eller sekunder siden systemet ble installert. Det er mulig å omdanne en tidsmarkering direkte til og fra et reelt tidspunkt. It is assumed that documents will be added as time goes on. Documents are numbered with a growing document identifier (docid) and each document is identified with a time stamp. The time stamp corresponds to some real time such as the number of days, hours or seconds since the system was installed. It is possible to convert a time stamp directly to and from a real time.
Granulariteten til tidsmerket definerer tidsgranulariteten for avspørringen i dataene. Hvis tidsgranulariteten er 1 time, er det bare mulig å avspørre indeksen om dokumentsamlingens tilstand ved starten eller slutten av et timeintervall. The granularity of the timestamp defines the temporal granularity of the query in the data. If the time granularity is 1 hour, it is only possible to query the index for the state of the document collection at the start or end of an hourly interval.
Slettingen av et dokument blir også tilordnet et tidsmerké. Dokumentoppdateringer støttes av den første sletting av dokumentet og deretter ved å innsette dokumentet og tilordne det en ny identifikator. The deletion of a document is also assigned a time stamp. Document updates are supported by first deleting the document and then inserting the document and assigning it a new identifier.
DETALJERT DRØFTELSE DETAILED DISCUSSION
Nå skal strukturen, opplegg og funksjonen for indeksen i henhold til oppfinnelsen drøftes. Det antas at dokumenter tilføyes etter hvert som tiden går. Dokumentene nummereres med en økende identifikator, og hvert dokument identifiseres med et tidsmerké. Tidsmarkeringen svarer til et eller annet reelt tidspunkt så som antallet dager, timer eller sekunder siden systemet ble installert. Granulariteten til tidsmarkeringen spesifiserer tidsgranulariteten for avspørringen i dataene. En dokumentsletting blir også tilordnet en tidsmarkering. Dokumentoppdateringer støttes ved først å slette dokumentet og deretter innsette dokument og tilordne det en identifikator. Løsningen som foreslås i henhold til denne oppfinnelse er å danne et hierarki av inverterte indekser med varierende tidsgranularitet. Strukturen til indeksen i henhold til oppfinnelsen er vist på fig. 2, som gjengir tre nivåer i hierarkiet (nivå 1 til 3). Nivå 1 befinner seg på laveste nivå og nivånummeret økes med 1 for hvert nivå oppover i hierarkiet. Antallet nivåer vil vokse etter hvert som tiden går og flere dokumenter innsettes. Tiden er gitt ved tidsmarkeringer og starter ved 1 til venstre i docid/ map. Til høyre er det nåværende tidspunkt 41. Ved hvert nivå er det et antall indekspartisjoner P nummerert som n:m. n er nivået og m er tidsmarkeringen for den siste tilføyelse til partisjonen. En partisjon inneholder alle dokumenttilføyelser og -slettinger i intervallet fra slutten av den foregående partisjon inntil m. Now the structure, layout and function of the index according to the invention will be discussed. It is assumed that documents will be added as time goes on. The documents are numbered with an increasing identifier, and each document is identified with a time stamp. The time stamp corresponds to some real time such as the number of days, hours or seconds since the system was installed. The granularity of the timestamp specifies the temporal granularity of the query in the data. A document deletion is also assigned a timestamp. Document updates are supported by first deleting the document and then inserting the document and assigning it an identifier. The solution proposed according to this invention is to form a hierarchy of inverted indices with varying time granularity. The structure of the index according to the invention is shown in fig. 2, which reproduces three levels in the hierarchy (levels 1 to 3). Level 1 is at the lowest level and the level number is increased by 1 for each level up in the hierarchy. The number of levels will grow as time passes and more documents are inserted. The time is given by time markings and starts at 1 on the left in docid/map. On the right is the current time 41. At each level there is a number of index partitions P numbered as n:m. n is the level and m is the timestamp of the last addition to the partition. A partition contains all document additions and deletions in the interval from the end of the preceding partition until m.
Hver partisjon er en forsterket, invertert indeks. I stedet for en enkel Each partition is a boosted, inverted index. Instead of a simple
posteringsliste for hvert symbol i indeksen er det en liste av posteringslister. Hver slik underliste inneholder innførsler for alle tilføyelser og alle slettinger innenfor tidsgranulariteten til partisjonen for dette symbol. En slik underliste kalles en deltaliste. På figuren er en deltaliste benevnt i- j, hvor / er nivået og j er tidsmerket ved starten av dokumentene i deltalisten. posting list for each symbol in the index there is a list of posting lists. Each such sublist contains entries for all additions and all deletions within the time granularity of the partition for that symbol. Such a sublist is called a delta list. In the figure, a delta list is named i-j, where / is the level and j is the time stamp at the start of the documents in the delta list.
En innførsel i deltalisten inneholder de samme verdier som for en regulær posteringsliste. For en dokumentnivåindeks inneholder innførselparet (docid, posisjon). Hvis posisjonen er 0, har dokumentet som symbolet forekom i, blitt slettet. Hvis det finnes en innførsel med posisjon 0, må denne være den eneste innførsel for denne docid i deltalisten. Når dokumentet slettes, må en slik slettingsinnførsel dannes for alle symboler som forekommer i det opprinnelige dokument. For å være i stand til å slette et dokument, er det derfor nødvendig å ha det originale dokument eller ha en liste over symboler som forekom i dokumentet. An entry in the delta list contains the same values as for a regular posting list. For a document level index, the entry pair contains (docid, position). If the position is 0, the document in which the symbol appeared has been deleted. If there is an entry with position 0, this must be the only entry for this docid in the delta list. When the document is deleted, such a deletion entry must be created for all symbols that occur in the original document. To be able to delete a document, it is therefore necessary to have the original document or to have a list of symbols that appeared in the document.
En alternativ måte å håndtere slettinger på og som ikke krever det originale dokument, er å ha et spesielt symbol DT som bare registrerer slettede dokumenter. Hver gang et dokument slettes, blir slettingsinnførselen satt inn i posteringslisten for dette symbol i stedet for alle de andre symboler. Dette vil ha en rekke fordeler: An alternative way of handling deletions that does not require the original document is to have a special symbol DT that only registers deleted documents. Whenever a document is deleted, the deletion entry is inserted into the posting list for that symbol instead of all the other symbols. This will have a number of advantages:
• Krever ikke det originale dokument • Does not require the original document
• En sletting blir bare registrert en gang (sparer plass) • A deletion is only registered once (saves space)
• Innsettingen i alle posteringslister bortsett fra DT-posteringslisten vil foregå på voksende dokumentidentifikatorer og gjøre det lettere å senere flette multiple deltalister. Fletting gjøres under konstruksjon av partisjoner på høyere nivå og under søkespørsmålsbehandlingen. • The insertion in all posting lists except the DT posting list will take place on growing document identifiers and make it easier to later merge multiple delta lists. Merging is done during the construction of higher-level partitions and during query processing.
Hovedulempen er at DT-posteringslisten sannsynligvis vil være stor og alltid må prosesseres under søkespørsmålsbehandling. For et enkelt søkespørsmål med en enkel søketerm som sjeldent forekommer, vil posteringslisten for termene selv være liten, men den må kunne settes opp mot DT-posteringslisten som vil være stor. DT-posteringslisten bør derfor mellomlagres i minnet og indekseres for raskt oppslag. DT-listen vil bare måtte registrere docid og andre felt kan ignoreres. Både B-tre og skip-lister [Pugh, William (June 1990). "Skip lists: a probabilistic alternative to balanced trees". Communications of the ACM 33 (6): 668-676)] kan benyttes. En enkel løsning er å registrere hvert n'te innførsel i en separat tabell. Hvis kompresjon benyttes, bør hoved-DT-listen få kompresjonen tilbakestilt for disse innførsler. Fig. 3 illustrer dette. På figuren er n = 4. til venstre befinner den opprinnelige liste av slettede dokumenter seg. Til høyre er listen deltakodet (en innførsel lagres som forskjellen fra den foregående innførsel) og hver fjerde innførsel (nummer 0, 4, 8 og 12) registreres i skip-indeksen. Slik det er vist på figuren, blir deltakodingen tilbakestilt for disse innførsler. En verdi (f.eks. 601) kan aksesseres direkte ved å utføre et binært eller sekvensielt søk i skip-indeksen og finne innførselen som er mindre eller lik denne verdien. Pekeren kan følges inn i DT-listen som kan være sekvensielt dekodet og sjekket inntil verdien er større eller like den verdien det ses etter. The main disadvantage is that the DT posting list is likely to be large and must always be processed during query processing. For a simple search query with a simple search term that rarely occurs, the posting list for the terms themselves will be small, but it must be possible to compare it to the DT posting list, which will be large. The DT posting list should therefore be cached in memory and indexed for quick look-up. The DT list will only need to record the docid and other fields can be ignored. Both B-tree and skip-lists [Pugh, William (June 1990). "Skip lists: a probabilistic alternative to balanced trees". Communications of the ACM 33 (6): 668-676)] can be used. A simple solution is to register every nth entry in a separate table. If compression is used, the main DT list should have the compression reset for these entries. Fig. 3 illustrates this. In the figure, n = 4. on the left is the original list of deleted documents. On the right, the list is the delta code (an entry is saved as the difference from the previous entry) and every fourth entry (numbers 0, 4, 8 and 12) is registered in the ship index. As shown in the figure, the delta encoding is reset for these entries. A value (eg 601) can be accessed directly by performing a binary or sequential search in the skip index and finding the entry that is less than or equal to that value. The pointer can be followed into the DT list which can be sequentially decoded and checked until the value is greater than or equal to the value being looked for.
En posteringsliste i den forsterkede inverterte indeks kodes som en sekvens av deltalister. En slik koding kan være som vist i tabell 1. An entry list in the augmented inverted index is encoded as a sequence of delta lists. Such coding can be as shown in table 1.
NDELTAS er antallet deltalister i denne posteringslisten. DELTA-/' er den /'te deltaliste. En deltaliste for en symbolnivåliste kan kodes som vist i tabell 2. NDELTAS is the number of delta lists in this posting list. DELTA-/' is the /'th delta list. A delta list for a symbol level list can be coded as shown in Table 2.
TIMESTAMP er tidsmarkering for dokumentinnsettinger og -slettinger i denne deltaliste. SIZE er et valgfritt felt som gir størrelsen på denne deltalisten i byte. Den gjør det lettere å hoppe over denne deltalisten hvis tidsmerket befinner seg utenfor tidsintervallet til et søkespørsmål. NENTRIES er antallet innførsler i deltalisten, DOCID-/ og POS-/ er docid og posisjon for innførselen i deltalisten. NDELETES er antallet sletteinnførsler i denne deltalisten og kan benyttes til å beregne mer korrekte relevanstall (nødvendig for TF/IDF beregninger). TIMESTAMP is the time stamp for document insertions and deletions in this delta list. SIZE is an optional field that gives the size of this delta list in bytes. It makes it easier to skip this delta list if the timestamp is outside the time interval of a query. NENTRIES is the number of entries in the delta list, DOCID-/ and POS-/ are the docid and position of the entry in the delta list. NDELETES is the number of deletion entries in this delta list and can be used to calculate more correct relevance figures (necessary for TF/IDF calculations).
Gitt formatet til posteringslistene som angitt ovenfor, kan de inverterte indekser som her er omtalt, konstrueres ved enhver metode beskrevet i litteraturen og vil ikke ytterligere omtales her. Dette innefatter teknikker både for trinnvis- og satsvis indeksering. Given the format of the posting lists as stated above, the inverted indices discussed here can be constructed by any method described in the literature and will not be discussed further here. This includes techniques for both incremental and batch indexing.
Den totale indeks består av multiple partisjoner som beskrevet ovenfor. En partisjon er enten åpen eller lukket. En åpen partisjon er forsatt under oppdatering, mens en lukket partisjon er fullført og vil ikke lenger forandres. Det er bare en åpen partisjon på hvert nivå. The total index consists of multiple partitions as described above. A partition is either open or closed. An open partition is still being updated, while a closed partition is complete and will no longer change. There is only one open partition on each level.
På fig. 2 er bare partisjonen lengst til høyre på hvert nivå åpen. Partisjonene 3:1, 2:37 og 1:41 er åpne, og alle de andre partisjoner er lukkede. Nye deltaer vil tilføyes på nivå 1 etter hvert som dokumenter tilføyes eller slettes. Hver gang en partisjon på nivået L når en bestemt størrelse (antallet dokumenter, antall deltalister, antallet byter eller tidsintervall) lukkes partisjonen, og en ny åpen partisjon dannes. Størrelsesterskelen bør være forskjellig for hvert nivå, da partisjoner på høyere nivå skal være større enn de på lavere nivå. Et opplegg kan være å la partisjonene på et nivå i hierarkiet være 100 ganger lengre (i tid) enn i nivået under. In fig. 2, only the rightmost partition on each level is open. The partitions 3:1, 2:37 and 1:41 are open, and all the other partitions are closed. New deltas will be added at level 1 as documents are added or deleted. Every time a partition at level L reaches a certain size (number of documents, number of delta lists, number of bytes or time interval), the partition is closed, and a new open partition is created. The size threshold should be different for each level, as higher level partitions should be larger than lower level ones. One scheme could be to let the partitions at one level in the hierarchy be 100 times longer (in time) than in the level below.
Når en partisjon lukkes, blir den også avsøkt og dens deltalister flettet til en enkelt deltaliste som deretter tilføyes den åpne partisjon på nivået L+l. Hvis det ikke er noen åpne partisjoner på nivået L+l, dannes en ny partisjon på dette nivå. Når en partisjon lukkes, registrerer den også hvilken partisjon som den tidligere flettede partisjon ble tilføyet til og hvilken partisjon den vil bli flettet inn i. Disse partisjoner er kalt henholdsvis F'- partisjon og S- partisjon. På fig. 2 er P-partisjonen til partisjonene 1:25, 2:13, 1:29 2:25 og 2:25 3:1. Partisjonene 1:1, 2:1 og 3:1 har ingen P-partisjoner. S-partisjonen til begge partisjoner 1:25 og 1:29 er 2:25. When a partition is closed, it is also scanned and its delta lists merged into a single delta list which is then added to the open partition at level L+l. If there are no open partitions at level L+l, a new partition is created at this level. When a partition is closed, it also records which partition the previously merged partition was added to and which partition it will be merged into. These partitions are called F' partition and S partition respectively. In fig. 2 is the P partition of partitions 1:25, 2:13, 1:29 2:25 and 2:25 3:1. The partitions 1:1, 2:1 and 3:1 have no P partitions. The S partition of both partitions 1:25 and 1:29 is 2:25.
Under fletting blir innførslene for dokumentet som først ble innsatt og deretter slettet innenfor samme partisjon, fjernet. Fig. 2 viser hvordan partisjonen 1:13 flettes inn i deltaliste 2-13 og 2:13 flettes inn i deltalisten 3-13. During merging, the entries for the document that was first inserted and then deleted within the same partition are removed. Fig. 2 shows how partition 1:13 is merged into delta list 2-13 and 2:13 is merged into delta list 3-13.
En partisjon vil aldri forandre seg etter at den er blitt lukket og kan fryses. Hvis hierarkiske konstruksjoner for de allerede inverterte indekser benyttes, kan underpartisjonene flettes til en enkelt partisjon før den fryses. A partition will never change after it has been closed and can be frozen. If hierarchical constructions for the already inverted indexes are used, the subpartitions can be merged into a single partition before it is frozen.
docid map er en ytterligere struktur som er nødvendig for effektivt å støtte tidsbaserte søkespørsmål. På fig. 2 er den vist som en matrise med en søyle for hver deltaliste. For hver deltaliste blir tidsmarkeringen til det første dokument i deltalisten tilføyd docid for dette dokument, og partisjonen på nivå 1 hvor deltalisten forekommer, registreres. Da docidene allokeres sekvensielt, vil de øke med økende tidsmarkeringer. docid avbildningen kan registreres i et B-tre ved å benytte en tidsmarkering som en nøkkel og vil derfor sorteres på økende tidsmarkering. Posteringen i B-treet vil være: docid map is an additional structure needed to effectively support time-based queries. In fig. 2 it is shown as a matrix with one column for each delta list. For each delta list, the timestamp of the first document in the delta list is added to the docid for that document, and the partition at level 1 where the delta list occurs is recorded. As the docids are allocated sequentially, they will increase with increasing timestamps. The docid image can be registered in a B-tree by using a timestamp as a key and will therefore be sorted by increasing timestamp. The entry in the B-tree will be:
Docid-avbildningen er lett å konstruere, da det bare tilføyes nye innførsler ved slutten av B-treet etter hvert som nye deltalister dannes. The docid mapping is easy to construct, as new entries are only added at the end of the B-tree as new delta lists are formed.
Den nye indeks er i stand til å finne symboler og skaffe en liste av rangerte dokumenter tilføyd i tidsintervallet fra S til T og som inneholder disse symboler. Et vanlig søkespørsmål er på formen "finn dokumentene hvor symbolet F forekommer på tidspunktet T'. I dette tilfelle blir starttiden S er satt som starttid (f.eks. 0). For søkespørsmålet "finn dokumenter innsatt etter S som inneholder symbolet V" er tiden T lik tidsmarkeringen for det sist innsatte dokument. The new index is able to find symbols and obtain a list of ranked documents added in the time interval from S to T and containing these symbols. A common search query is of the form "find the documents where the symbol F occurs at time T'. In this case, the start time S is set as the start time (e.g. 0). For the search query "find documents inserted after S that contain the symbol V" is the time T equal to the time stamp for the last inserted document.
Avspørring skjer ved å flette sammen deltalister fra en partisjon på hvert nivå. De nedenstående trinn følges: • Slå opp i docid-avbildningen og finn innførslene med den største tidsmarkering mindre eller lik tidsmarkeringen S og den største tidsmarkering mindre eller lik tidsmarkering T. Polling is done by merging delta lists from a partition at each level. The following steps are followed: • Look up the docid mapping and find the entries with the largest timestamp less than or equal to the timestamp S and the largest timestamp less than or equal to the timestamp T.
En partisjon på hvert nivå velges for tidsmarkeringen T: A partition at each level is selected for the time stamp T:
o Partisjonen på nivå 1 er partisjonen i docid-avbildningsinnførselen for o The level 1 partition is the partition in the docid image entry for
T. T.
o Partisjonen på nivå / (/ > 1) er P-partisjonen på nivået i- l. o The partition at level / (/ > 1) is the P-partition at level i-l.
En partisjon på hvert nivå velges for tidsmarkeringen S: A partition at each level is selected for the time stamp S:
o Partisjonen på nivå 1 er partisjonen docid-avbildningsinnførselen for o The partition at level 1 is the partition the docid image entry for
S. S.
o Partisjonen på nivået i (z > 1) er S-partisjonen på nivået i- l. o The partition at level i (z > 1) is the S-partition at level i-l.
Hvis S er begynnelsen på tiden (det er ingen lavere grense), kan dette trinn ignoreres. If S is the beginning of time (there is no lower bound), this step can be ignored.
Finn symbolet eller symbolene i hver av de valgte partisjoner. Find the symbol or symbols in each of the selected partitions.
For hvert symbol: For each symbol:
o Ta deltalistene i hver partisjon valgt ovenfor og velg deltalistene som er helt inneholdt i tidsintervallet mellom S og T. Avhengig av applikasjonssemantikk, kan partisjonene på nivå 1 som innbefatter tidsmarkeringen S og/eller T, innbefattes. o Take the delta lists in each partition selected above and select the delta lists that are entirely contained in the time interval between S and T. Depending on application semantics, the level 1 partitions that include the timestamp S and/or T may be included.
o Ta de valgte deltalister og akkumuler det totale antall av forekomster o Take the selected delta lists and accumulate the total number of occurrences
av symbolet. Dette antallet kan benyttes for relevansberegninger. of the symbol. This number can be used for relevance calculations.
o Ta de valgte deltalister og flett dem sammen. Deltalistene blir sortert på økende docid-er og kan flettes med bruk av en prioritetskø. Hvis det er en sletteinnførsel for et dokument, bør dette dokumentet helt ignoreres. o Take the selected delta lists and merge them together. The delta lists are sorted by increasing docids and can be merged using a priority queue. If there is a delete entry for a document, that document should be completely ignored.
De flettede dokumenter for hvert symbol kan nå benyttes til å kombinere hele søkespørsmålet innbefattet boolske operatorer så som AND/OR så vel som frasetilsvar. The merged documents for each symbol can now be used to combine the entire search query including Boolean operators such as AND/OR as well as phrase matching.
Hvis et spesialsymbol benyttes for slettede dokumenter, kan DT-symbolet være en del av søkespørsmålet og dokumentene i den flettede liste for dette må elimineres fra resultatet. If a special symbol is used for deleted documents, the DT symbol may be part of the search query and the documents in the merged list for this must be eliminated from the result.
Fig. 2 illustrerer et søkespørsmål mellom S=8 og T=30. Partisjonene som velges er 1:5, 1:29, 2:1, 2:25 og 3:1. De omfatter alle operasjoner mellom tidsmarkeringen S=8 og T=30.1 1:5 velges deltalisten 1-8, i 1:29 deltalistene 1-29 og 1-30, i 2:1 deltalisten 2-9, i 2:25 deltalisten 2-25 og i 3:1 velges deltalisten 3-13. Deltalistene 1-8, 1-29, 1-30, 2-9, 2-25 og 3-13 blir deretter flettet sammen. Fig. 2 illustrates a search query between S=8 and T=30. The partitions selected are 1:5, 1:29, 2:1, 2:25 and 3:1. They include all operations between the time marker S=8 and T=30.1 1:5 delta list 1-8 is selected, in 1:29 delta lists 1-29 and 1-30, in 2:1 delta list 2-9, in 2:25 delta list 2 -25 and in 3:1 the delta list 3-13 is selected. The delta lists 1-8, 1-29, 1-30, 2-9, 2-25 and 3-13 are then merged together.
Ved å danne et hierarki av forandringer i tidsdomenet i indeksen i henhold til den foreliggende oppfinnelse kan en dokumentsamling som vokser ved oppdateringer søkes ved enhver datoenhet i historien. By forming a hierarchy of changes in the time domain in the index according to the present invention, a document collection that grows by updates can be searched at any date unit in the history.
De inverterte indekser som heri beskrevet kan som nevnt konstrueres ved hvilken som helst metode omtalt i litteraturen og kjent for fagfolk. As mentioned, the inverted indices described herein can be constructed by any method described in the literature and known to those skilled in the art.
Den foreliggende oppfinnelse gjør et kompromiss mellom antallet plateaksesser og begrenser samtidig volumet av dataene som må behandles for hvert søkespørsmål. Den foreliggende oppfinnelse er følgelig spesielt fordelaktig hvis den benyttes for dokumentsamlinger som hyppig endrer seg og hvor dokumentene settes inn og slettes med stor hyppighet. The present invention makes a compromise between the number of disk accesses and at the same time limits the volume of data that must be processed for each query. The present invention is therefore particularly advantageous if it is used for document collections that frequently change and where the documents are inserted and deleted with great frequency.
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NO20091623A NO329298B1 (en) | 2009-04-23 | 2009-04-23 | Full-text searchable index for effective history search in frequently changing document collections |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NO20091623A NO329298B1 (en) | 2009-04-23 | 2009-04-23 | Full-text searchable index for effective history search in frequently changing document collections |
Publications (2)
Publication Number | Publication Date |
---|---|
NO20091623A NO20091623A (en) | 2010-09-27 |
NO329298B1 true NO329298B1 (en) | 2010-09-27 |
Family
ID=42989338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
NO20091623A NO329298B1 (en) | 2009-04-23 | 2009-04-23 | Full-text searchable index for effective history search in frequently changing document collections |
Country Status (1)
Country | Link |
---|---|
NO (1) | NO329298B1 (en) |
-
2009
- 2009-04-23 NO NO20091623A patent/NO329298B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
NO20091623A (en) | 2010-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1779273B1 (en) | Multi-stage query processing system and method for use with tokenspace repository | |
US8473501B2 (en) | Methods, computer systems, software and storage media for handling many data elements for search and annotation | |
AU2010200478B2 (en) | Multiple index based information retrieval system | |
US7917480B2 (en) | Document compression system and method for use with tokenspace repository | |
US8166041B2 (en) | Search index format optimizations | |
US10498357B2 (en) | Method, apparatus, system, and computer program product for data compression | |
KR100834760B1 (en) | Structure of index, apparatus and method for optimized index searching | |
US20120166414A1 (en) | Systems and methods for relevance scoring | |
WO2000036529A1 (en) | Dynamic taxonomy process for browsing and retrieving information in large heterogeneous data bases | |
US20120215752A1 (en) | Index for hybrid database | |
CN109857898A (en) | A kind of method and system of mass digital audio-frequency fingerprint storage and retrieval | |
US20100161623A1 (en) | Inverted Index for Contextual Search | |
US20140297651A1 (en) | Using hash table to retrieve leaf index blocks | |
US20080082554A1 (en) | Systems and methods for providing a dynamic document index | |
CN105843960B (en) | Indexing method and system based on semantic tree | |
US20080294597A1 (en) | Computer-implemented method, computer program product and system for creating an index of a subset of data | |
James et al. | Indexing documents for queries on structure, content and attributes | |
US20090055358A1 (en) | Efficient processing of mapped boolean queries via generative indexing | |
US8392433B2 (en) | Self-indexer and self indexing system | |
CN115544201A (en) | Multi-granularity full-text retrieval method and device | |
NO329298B1 (en) | Full-text searchable index for effective history search in frequently changing document collections | |
US11392569B2 (en) | Tree partitioning of the succinct trie | |
KR101142062B1 (en) | Apparatus and method for database management and search engine of multimedia metadata | |
Ahmed et al. | IMPROVED FUZZY SEARCHINGTECHNOLOGY | |
Xue et al. | A hybrid index structure for querying large string databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM1K | Lapsed by not paying the annual fees |