Inverterat index

Inom datavetenskap är ett inverterat index (även kallat en postningslista , postingsfil eller inverterad fil ) ett databasindex som lagrar en mappning från innehåll, såsom ord eller siffror, till dess platser i en tabell eller i ett dokument eller en uppsättning dokument (namngivna i motsats till ett framåtindex , som mappar från dokument till innehåll). Syftet med ett inverterat index är att möjliggöra snabba fulltextsökningar , till en kostnad av ökad bearbetning när ett dokument läggs till i databasen. Den inverterade filen kan vara själva databasfilen, snarare än dess index. Det är den mest populära datastrukturen som används i dokumenthämtningssystem , som används i stor skala till exempel i sökmotorer . Dessutom har flera betydande stordatorbaserade databashanteringssystem för allmänna ändamål använt inverterade listarkitekturer, inklusive ADABAS , DATACOM/DB och Model 204 .

Det finns två huvudvarianter av inverterade index: Ett inverterat index på rekordnivå (eller inverterat filindex eller bara inverterad fil ) innehåller en lista med referenser till dokument för varje ord. Ett inverterat index på ordnivå (eller helt inverterat index eller inverterad lista ) innehåller dessutom positionerna för varje ord i ett dokument. Den senare formen erbjuder mer funktionalitet (som frassökningar ), men behöver mer processorkraft och utrymme för att skapas.

Ansökningar

Den inverterade indexdatastrukturen är en central komponent i en typisk sökmotorindexeringsalgoritm . Ett mål med en sökmotorimplementering är att optimera sökhastigheten: hitta de dokument där ordet X förekommer. När ett framåtindex har utvecklats, som lagrar listor med ord per dokument, inverteras det nästa för att utveckla ett inverterat index. Att fråga framåtindexet skulle kräva sekventiell iteration genom varje dokument och till varje ord för att verifiera ett matchande dokument. Tiden, minnet och bearbetningsresurserna för att utföra en sådan fråga är inte alltid tekniskt realistiska. Istället för att lista orden per dokument i framåtindexet utvecklas den inverterade indexdatastrukturen som listar dokumenten per ord.

Med det inverterade indexet skapat kan frågan nu lösas genom att hoppa till ordet ID (via direktåtkomst ) i det inverterade indexet.

I före-datortider sammanställdes överensstämmelser till viktiga böcker manuellt. Dessa var effektivt inverterade index med en liten mängd åtföljande kommentarer som krävde en enorm ansträngning att producera.

Inom bioinformatik är inverterade index mycket viktiga i sekvenssammansättningen av korta fragment av sekvenserat DNA. Ett sätt att hitta källan till ett fragment är att söka efter det mot en referens-DNA-sekvens. Ett litet antal felmatchningar (på grund av skillnader mellan sekvenserat DNA och referens-DNA, eller fel) kan förklaras genom att dela upp fragmentet i mindre fragment - minst ett subfragment kommer sannolikt att matcha referens-DNA-sekvensen. Matchningen kräver att man konstruerar ett inverterat index av alla delsträngar av en viss längd från referens-DNA-sekvensen. Eftersom det mänskliga DNA:t innehåller mer än 3 miljarder baspar, och vi behöver lagra en DNA-delsträng för varje index och ett 32-bitars heltal för själva indexet, skulle lagringskravet för ett sådant inverterat index troligen vara i tiotals gigabyte.

Kompression

Av historiska skäl utvecklades inverterad listkomprimering och bitmappskomprimering som separata forskningslinjer, och först senare erkändes de lösa i huvudsak samma problem.

Se även

Bibliografi

externa länkar