NO328657B1 - Invertert indeks for kontekstuell sok - Google Patents

Invertert indeks for kontekstuell sok Download PDF

Info

Publication number
NO328657B1
NO328657B1 NO20085365A NO20085365A NO328657B1 NO 328657 B1 NO328657 B1 NO 328657B1 NO 20085365 A NO20085365 A NO 20085365A NO 20085365 A NO20085365 A NO 20085365A NO 328657 B1 NO328657 B1 NO 328657B1
Authority
NO
Norway
Prior art keywords
index
road
definition area
document
definition
Prior art date
Application number
NO20085365A
Other languages
English (en)
Other versions
NO20085365A (no
Inventor
Oystein Torbjornsen
Original Assignee
Fast Search & Transfer As
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fast Search & Transfer As filed Critical Fast Search & Transfer As
Priority to NO20085365A priority Critical patent/NO20085365A/no
Priority to US12/643,588 priority patent/US20100161623A1/en
Publication of NO328657B1 publication Critical patent/NO328657B1/no
Publication of NO20085365A publication Critical patent/NO20085365A/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

I en invertert indeks for kontekstuelt søk i en samling av dokumenter benyttes kontekstuelt søk til å gjenfinne en eller flere symboler i et dokument så vel som konteksten hvori de en eller flere symboler forekommer, idet konteksten er enhver identifiserbar struktur i et dokument. Enhver spesifikk enkelt kontekst utgjør et definisjonsområde for dokumentet. Den inverterte indeks omfatter minst en underindeks i form av en tekstindeks av tekstsymboler, og tekstindeksen omfatter feltformaterte dataposter som innbefatter et veifelt for veien til definisjonsområdet som omslutter symbolet. Datapostene utgjør en posteringsliste for tekstindeksen med informasjon om veiene for alle forekomster av symbolene. Et veifilter til bruk med den inverterte indeks for kontekstuelt søk omfatter et veimønster i form av uttrykk som definerer veier som tilsvarer eller ikke tilsvarer et søkespørsmål. (Fig. 2)

Description

Invertert indeks for kontekstuelt søk
0. INNLEDNING
Den foreliggende oppfinnelse angår en invertert indeks for kontekstuelt søk i en samling av dokumenter hvor kontekstuelt søk benyttes til å gjenfinne ett eller flere symboler i et dokument så vel som konteksten hvori de ett eller flere symboler forekommer, hvor konteksten utgjør enhver identifiserbar struktur i et dokument, og hvor enhver spesifikk enkelt kontekst utgjør et definisjonsområde for dokumentet. Den foreliggende oppfinnelse angår også et veifilter for bruk med den inverterte indeks.
Den foreliggende oppfinnelse angår spesifikt kontekstuelt søk i en samling av dokumenter. Kontekstuelt søk skal tas i betydningen søking etter symboler i en samling av dokumenter hvor konteksten symbolene forekommer i, kan benyttes som en del av søkeuttrykket.
1. KJENT TEKNIKK
Det er vanlig og kjent i teknikken for fulltekstsøking å støtte feltnavn, men dette er begrenset til en flat struktur og ikke hierarkier. For eksempel, se: Bast, H., Chitea, A., Suchanek, F., og Weber, I.; "ESTER: efficient search on text, entities, and relations", Proceedings of the 30th Annual international ACM SIGIR Conference on Research and Development in information Retrieval, Amsterdam, The Netherlands, July 23 - 27, 2007. (SIGIR '07. ACM, New York, NY, 671-678).
r http:// doi. acm. org/ 10. 1145/ 1277741. 12778561.
Zhang, C, Naughton, J., DeWitt, D., Luo, Q., og Lohman, G; "On supporting containment queries in relational database management systems". I Proceedings of the 2001 ACM SIGMOD international Conference on Management of Data, Santa Barbara, California, United States, May 21 - 24, 2001. T. Sellis, utg., SIGMOD '01, ACM, New York, NY, 425-436). rhttp:// doi. acm. org/ 10. 1145/ 375663. 3757221. innfører doble indekser, en for tekst og en for struktur. Det benyttes ikke veier i noen av indeksene, men nøsting ekstraheres gjennom dybde og symbolposisjon.
Beyer, K., Cochrane, R. J., Josifovski, V., Kleewein, J., Lapis, G., Lohman, G., Lyle, B., Ozcan, F., Pirahesh, H., Seemann, N., Truong, T., Van der Linden, B., Vickery, B., og Zhang, C; "System RX: one part relational, one part XML." I Proceedings of the 2005 ACM SIGMOD international Conference on Management of Data, Baltimore, Maryland, June 14 - 16, 2005 (SIGMOD '05, ACM, New York, NY, 347-358). r http:// doi. acm. org/ 10. 1145/ 1066157. 10661971. viser bruken av veiidentifikatorer, veikataloger og dewey-koding, men kombinerer ikke dette med inverterte indekser.
For overlappende strukturer har det meste av arbeidet angått XML/SGML-notasjon og spørsmålsformulering og i mindre grad indekseringsstrukturer. Se for eksempel GODDAG: A Data Structure for Overlapping Hierarchies: Sperberg-McQueen, C.M.; Huitfeldt, C; "LECTURE NOTES IN COMPUTER SCIENCE", (Springer, 2004).
US publisert patentsøknad nr. US2008/0133473A1 (Broder & al.) viser en
fremgangsmåte for å etterspørre flerfasettert informasjon. En invertert indeks konstrueres slik at den innbefatter entydig indekserte symboler assosiert med posteringslister for ett eller flere dokumenter. Et indeksert symbol er enten et fasettsymbol innbefattet i et dokument som en annotasjon eller et veiprefiks for fasettsymbolet. Annotasjonen angir en vei innenfor en trestruktur som representerer en fasett som innbefatter dokumentet. Tekststrukturen innbefatter noder som representerer dokumentkategorier. Konstruksjonen av den inverterte indeks innbefatter å generere et fullstendig veisymbol og et tilordnet posteringsliste for fullstendig veisymbol. Et søkespørsmål som innbefatter beskrankninger på dokumentet mottas. Beskrankningene er assosiert med indekserte symboler og tilsvarer posteringslister. En eksekvering av søkespørsmålet innbefatter å identifisere de tilsvarende posteringslister og benytte beskrankningene og den inverterte indeks og danne snitt gjennom posteringslinjene for å få et søkeresultat. Hensikten med den her viste fremgangsmåte er å skaffe en datamaskinimplementert metode for å finne multifasettert informasjon i et informasjonsgjenfinningssystem, og for dette formål beskrives det også et system og et programvareprodukt som realiserer den ovennevnte fremgangsmåte. Det er som fordelaktig angitt at i henhold til oppfinnelsen å skaffe en skalerbar teknikk som effektivt koder fasettinformasjon i en invertert indeks.
2. OPPFINNELSENS HENSIKTER
I lys av visse av manglene og ulempene ved kjent teknikk er en hovedhensikt med den foreliggende oppfinnelse å skaffe en indeks som muliggjør fulltekstsøk i en dokumentsamling med predikater som spesifiserer strukturen hvor teksten forekommer og når strukturen har overlappende elementer.
En annen hensikt med den foreliggende oppfinnelse er å muliggjøre fellestrekk for søking som relevans, boolske operatorer og frasesøk.
Nok en annen hensikt med oppfinnelsen er at søkespørsmål som ikke ser etter strukturelle elementer, skal eksekveres med minimal virkning på ytelsen.
Endelig er det også en hensikt med den foreliggende oppfinnelse å skaffe et veifilter til bruk med en invertert indeks og som muliggjør fulltekstsøk i en dokumentsamling med predikater som spesifiserer strukturen hvor teksten forekommer og når strukturen har overlappende elementer.
3. SAMMENDRAG AV OPPFINNELSEN
De ovennevnte hensikter så vel som ytterligere trekk og fordeler realiseres med en invertert indeks som minst omfatter en underindeks i form av en tekstindeks med tekstsymboler, hvor tekstindeksen omfatter dataposter formatert med et første felt som identifiserer dokumentet hvor symbolet befinner seg, et annet felt for posisjonen av symbolet i dokumentet, et tredje felt for veien til definisjonsområdet som omslutter symbolet, og hvori datapostene utgjør en posteringsliste for tekstindeksen, slik at indeksen omfatter informasjon om veiene for hver eneste forekomst av symbolene og følgelig muliggjør et kontekstuelt søk.
I henhold til den foreliggende oppfinnelse realiseres en av hensiktene med et veifilter som omfatter et veimønster i form av uttrykk som definerer hvilke veier som tilsvarer eller ikke tilsvarer et søkespørsmål.
I en fordelaktig utførelse av oppfinnelsen er den inverterte indeks en dobbelindeks som i tillegg til tekstindeksen omfatter en annen underindeks i form av en definisjonsområdeindeks for definisjonsområder hvor teksten forekommer, hvor definisjonsområdeindeksen omfatter dataposter formatert med et første felt for å identifisere dokumentet hvor definisjonsområdet befinner seg, et annet felt for startposisjonen til definisjonsområdet i dette dokument, et tredje felt for sluttposisjonen til definisjonsområdet i dette dokument og et fjerde felt for veien til definisjonsområdet og alltid med definisjonsområdet selv innbefattet, idet datapostene utgjør en posteringsliste for definisjonsområdeindeksen.
Ytterligere trekk og fordeler vil fremgå av de øvrige vedføyde, uselvstendige krav.
Oppfinnelsen skal forstås bedre ved å lese den etterfølgende detaljerte drøftelse av realiseringen av den foreliggende oppfinnelse som uttrykt ved en beskrivelse av konstruksjonen av den inverterte indeks og strukturelle trekk for denne og med henvisning til den vedføyde tegning, på hvilken fig. 1 viser en strøm av symboler, definisjonsområdene som de forekommer i, og dimensjonene som definisjonsområdene befinner seg i, og fig. 2 en oversikt over en foretrukket utførelse av indeksen i henhold til den foreliggende oppfinnelse.
4. BEGREPER OG DEFINISJONER
Begrepet dokument benyttes for hvilken som helst type av datafil. Dette kan for eksempel være • en tekstfil som regulær, uformatert tekst, HTML, XML, eller en fil dannet med tekstbehandlende programvare
• multimediadata som et bilde, en audiofil, eller en videofil
• en databasepost
Dokumenter blir entydig identifisert med en heltallsidentifikator. Denne identifikatoren er her betegnet Dodd.
Begrepet "kontekst" vil for denne oppfinnelsen benyttes i bredeste forstand. Det kan være et av de følgende, men er ikke begrenset til • Struktur i dokumentet, f.eks. etikettering i et XML- eller HTML-dokument, eller felter i en databasepost.
• Tekstuell struktur som kapitler, avsnitt, perioder og setninger.
• Layoutstruktur som sider, spalter, linjer, farge og font.
• Ekstraherte metadata som personnavn, bedriftsnavn, adresser, datoer, postkoder, priser, URLer, talt tekst, eller undertitler.
Begrepet definisjons område betegner en slik kontekst, uansett om den er et XML-element, en periode, en linje eller et navn. Den foreliggende oppfinnelse støtter både hierarkiske og overlappende definisjonsområder. Et eksempel på hierarkiske definisjonsområder kan være XML-struktur eller hierarkiet av kapittel, avsnitt, periode og setning. Setninger og linjer er eksempler på overlappende definisjonsområder. En setning kan starte i midten av en linje, slutte i midten av en annen og gå over flere mellomliggende linjer.
Teksten i et dokument brytes opp i en strøm av symboler (for eksempel ord, bilder og sekunder). Symbolene nummereres sekvensielt. Nummeret angir posisjon. Et definisjonsområde har en definert startposisjon (inklusiv) og sluttposisjon (eksklusiv).
Eksempel:
12 3 45 67 8 9 10 11 The Rolling Stones have released 22 studio albums in the UK
Numrene over teksten er posisjoner. Det er et definisjonsområde kalt "BandName" (The Rolling Stones) som strekker seg fra 1 til 4 og en annet kalt "Country" (UK) som strekker seg fra 11 til 12.
Et definisjonsområde kan ha null eller flere navngitte attributter. For eksempel kan et "kapittel" ha attributtene "tittel" (tittelen på kapitelet) og "nummer" (kapittelnummer).
Relaterte definisjonsområder grupperes i dimensjoner. En typisk dimensjon kan være en tekstlig struktur med definisjonsområder som "kapittel", "avsnitt", "periode" og "setning". Innenfor en dimensjon er definisjonsområdene organisert i et hierarki; f.eks. inneholder et kapittel flere seksjoner som igjen inneholder en rekke perioder som igjen kan bestå av flere setninger. Det er ingen overlapping mellom definisjonsområder innenfor en dimensjon, bare en inneslutning.
Det kan være en rekke forekomster av samme dimensjon som tillater to overlappende definisjonsområder av samme type.
5. DETALJERT DRØFTELSE
Indeksen i henhold til den foreliggende oppfinnelse tillater hurtig eksekvering av en mengde av spørsmålstyper i kombinasjon med regulært fritekstsøk.
5.1 Spørsmål
Forskjellige spørsmålstyper skal nå drøftes mer detaljert. De kan være spørsmål som kan benyttes på symboler innenfor et definisjonsområde, spørsmål etter strukturell relasjon mellom definisjonsområder, eller spørsmål etter definisjonsområder som overlapper andre definisjonsområder.
5.1.2 Innholdsspørsmål
Disse er spørsmål som spør om symboler innenfor et bestemt definisjonsområde; f.eks. for å finne ordet "stones" innenfor et definisjonsområde "BandName". Det kan være flere symboler i samme spørsmål, f.eks. for å finne alle dokumenter med et definisjonsområde "BandName" som inneholder både "rolling" og "stones". Det er også mulig å foreta et frasesøk som spør etter "the rolling" i et definisjonsområde "BandName" (ordet "the" umiddelbart fulgt av ordet "rolling").
5.1.3 Strukturspørsmål
Disse er spørsmål som bare spør etter strukturelle relasjoner mellom definisjonsområder i et dokument. Eksempler er å finne dokumenter med et bestemt definisjonsområde (f.eks. dokumenter med et definisjonsområde "BandName"), eller dokumenter med bestemt definisjonsområde innenfor et annet bestemt definisjonsområde, f.eks. "BandName" innenfor et definisjonsområde "Title"). Strukturell inneslutning kan både forekomme innenfor samme dimensjon og mellom forskjellige dimensjoner.
Det er også mulig å fremsette veispørsmål hvor spørsmålet spesifiserer et eller annet veimønster. Et eksempel er "/document/<*> /periode/setning" som angir at det innerste definisjonsområdet må være "setning", umiddelbart inneholdt innenfor et definisjonsområde "periode", som igjen ved en eller annen vilkårlig dybde er inneholdt innenfor definisjonsområdet "dokument". Veiene "/dokument/periode/setning", "/dokument/avsnitt/periode/setning" og "dokument/kapittel/avsnitt/periode/setning" tilsvarer dette veimønster.
5.1.4 Overlappende spørsmål
Overlappende spørsmål er strukturelle spørsmål som bare er mulige på definisjonsområder fra forskjellige dimensjoner. Overlappende spørsmål er spørsmål som ser etter definisjonsområder som overlapper et annet definisjonsområde, så som å finne definisjonsområdet "BandName" fordelt over to forskjellige sider (definisjonsområdet "side").
Alle disse spørsmålstyper kan kombineres med regulære fritekstspørsmål i det samme søkespørsmål.
5.2 Relevans
Den foreliggende oppfinnelse kan benyttes til å forbedre relevansskåring for spørsmålsresultater. • Noen definisjonsområder kan være viktigere enn andre, og dokumenter med termer innenfor disse definisjonsområder kan fremheves. • Hvis to søkespørsmålstermer befinner seg innenfor samme definisjonsområder, er de på en eller annen måte forbundet og kan fremheves. Jo mindre definisjonsområdet er, jo sterkere er de sannsynligvis forbundet og kan derfor fremheves sterkere.
5.3 Koding
To inverterte indekser kan benyttes til å indeksere informasjon. En indeks er tekstindeksen som indekserer tekstsymboler. Den andre indeksen er definisjonsområdeindeksen som indekserer definisjonsområdet.
En invertert indeks avbilder en nøkkel til en liste av forekomster for denne nøkkelen i en samling av dokumenter eller dataposter. Den består av to hoveddeler, en katalog og en posteringsfil. • Katalogen kan være et B-tre, "hash"-avbildning (nøkkelavbildning), lineær matrise eller hvilken som helst struktur som gjør det mulig å slå opp på en mulig nøkkel og returnere en datapost av verdier. For denne oppfinnelsen er det nødvendig å lagre posisjoner i posteringsfilen hvor en posteringsliste befinner seg, og listens størrelse. Vanligvis vil den også ha antallet elementer i posteringslisten og antallet dokumenter som nøkkelen forekommer i (benyttet for relevansberegninger), men dette er ikke vesentlig for den foreliggende oppfinnelse. • Posteringsfilen lagrer alle posteringslister referert til av katalogen.
5.4. Tekstindeks
En posteringsliste består av en sekvens av innførsler med identisk datapostlayout. Formatet til dataposten i tekstindeksen er gitt i tabell 1.
Da et ord kan befinne seg innenfor definisjonsområdet i flere dimensjoner, vil det være en datapost for hver dimensjonsforekomst.
En posteringsliste i tekstindeksen sorteres på økende Docld, deretter på Posisjon og deretter på Vei.
Fig. 1 viser et eksempel på en symbolstrøm for et dokument. Symbolene er nummerert ti til ti6. Det er to dimensjoner: dimensjonl og dimensjon2. I dimensjonl er det tre definisjonsområder: a, b og c. I dimensjon2 er det bare ett definisjonsområde e. Posteringslistene for symbolene ti, t2, t3, t6, ti 1, tl3 og tl6 er oppført i tabell 2.
Posteringslisten til tekstindeksen omfatter innførsler for veiene til hvert symbol. Formatet til veifeltet er en ordnet liste av definisjonsområder som symbolet er innesluttet i. Veien "/a[l]/b[2]/c[l]" for symbolet t6 i posisjon 6 betyr at symbolet t6 befinner seg innenfor et definisjonsområde c som befinner seg innefor et definisjonsområde b, som igjen befinner seg innenfor et definisjonsområde a.
Tallet innenfor et hakeparentes ([]) er sekvensnummeret for definisjonsområdet innenfor det omgivende definisjonsområdet (telt fra 1). c er det første definisjonsområde innenfor b. b er det annet definisjonsområde innenfor a. a er det første definisjonsområde i dimensjonen.
Sekvensnummeret kan utelates hvis sekvensen av et definisjonsområde ikke er signifikant og definisjonsområdet er entydig innenfor det omgivende definisj onsområde.
5.5 Definisj onsområdeindeks
Formatet til datapostene i definisjonsområdeindeksen er gitt i tabell 3.
En posteringsliste i definisjonsområdeindeksen sorteres på økende Dodd, deretter på StartPos, deretter på Vei.
For eksempelet på fig. 1 vil posteringslisten være som gitt i tabell 4.
Tilsvarende til tabell 2 omfatter også posteringslisten for hvert definisjonsområde en innførsel for hver vei. Definisjonsområdet er naturligvis gitt av det siste elementet til en vei.
Formatet til feltet Vei er det samme som for tekstindeksen. Veien skal innbefatte bladdefinisjonsområdet selv.
5.6 Koding av XML
XML kan kodes med bruk av indeksen beskrevet ovenfor ved å benytte følgende regler:
• Hvert XML-element blir et definisjonsområde ("element scope").
• Tekst i dokumentet omdannes til symboler og nummereres fra 1. Dette tallet er symbolets posisjon. Symboler i XML-attributter er utelukket fra denne sekvensen. • StartPos for et elementdefinisjonsområde er posisjonen for det første symbol som følger etter starten på definisjonsområdet. • EndPos til et elementdefinisjonsområde er posisjonen til det første symbol som følger etter slutten på definisjonsområdet. • Attributter kodes som bladdefinisjonsområder i det omgivende definisjonsområde. Navnet på et attributtdefinisjonsområde er attributtnavnet med en "@"-prefiks. En attributtdefinisjonsområde er ikke signifikant. Symbolene innenfor et attributt nummereres av den samme posisjon som det omgivende definisjonsområde.
Anta den følgende XML-tekst:
Dette er den resulterende strøm som skal indekseres:
Scope doc StartPos=l EndPos=21 Path=/doc[l]
Scope para StartPos=l EndPos=ll Path=/doc[l]/para[l]
Scope @size StartPos=l EndPos=2 Path=/doc[l]/para[l]/@size[l] Token 22 Position=l Path=/doc[l]/para[l]/@size[l]
Scope @color StartPos=l EndPos=2 Path=/doc[l]/para[l]/@color[2] Token yellow Position=l Path=/doc[l]/para[l]/@color[2]
Scope @comment StartPos=l EndPos=6
Path=/doc[l]/para[l]/@comment[3]
Token this Position=l Path=/doc[l]/para[l]/@comment[3] Token is Position=2 Path=/doc[l]/para[l]/@comment[3]
Token the Position=3 Path=/doc[l]/para[l]/@comment[3]
Token first Position=4 Path=/doc[l]/para[l]/@comment[3] Token paragraph Position=5 Path=/doc[l]/para[l]/@comment[3] Token alpha Position=l Path=/doc[l]/para[l]
Token bravo Position=2 Path=/doc[l]/para[l]
Token charlie Position=3 Path=/doc[l]/para[l]
Token delta Position=4 Path=/doc[l]/para[l]
Token echo Position=5 Path=/doc[l]/para[l]
Token foxtrot Position=6 Path=/doc[l]/para[l]
Token golf Position=7 Path=/doc[l]/para[l]
Token hotel Position=8 Path=/doc[l]/para[l]
Token india Position=9 Path=/doc[l]/para[l]
Token juliet Position=10 Path=/doc[l]/para[l]
Scope para StartPos=ll EndPos=21 Path=/doc[l]/para[2]
Scope @size StartPos=ll EndPos=12 Path=/doc[l]/para[2]/@size[l] Token 15 Position=ll Path=/doc[l]/para[2]/@size[l]
Scope @color StartPos=ll EndPos=12 Path=/doc[l]/para[2]/@color[2] Token red Position=ll Path=/doc[l]/para[2]/@color[2]
Scope @comment StartPos=ll EndPos=13
Path=/doc[l]/para[2]/@comment[3]
Token second Position=ll Path=/doc[l]/para[2]/@comment[3] Token paragraph Position=12 Path=/doc[l]/para[2]/@comment[3] Token kilo Position=ll Path=/doc[l]/para[2]
Token lima Position=12 Path=/doc[l]/para[2]
Token mike Position=13 Path=/doc[l]/para[2]
Token november Position=14 Path=/doc[l]/para[2]
Token oscar Position=15 Path=/doc[l]/para[2]
Token papa Position=16 Path=/doc[l]/para[2]
Token quebec Position=17 Path=/doc[l]/para[2]
Token romeo Position=18 Path=/doc[l]/para[2]
Token sierra Position=19 Path=/doc[l]/para[2]
Token tango Position=20 Path=/doc[l]/para[2]
5.7 Koding og kompresjon
Kompresjon kan benyttes til signifikant å redusere størrelsen av de inverterte indekser. Den reduserte størrelse vil minske det nødvendige platelagerplassbehov, men viktigere er det at det skjer en reduksjon av dataene som må skrives til eller leses fra platelageret under indeksering og spørsmålsprosessering, og derfor bedres ytelsen.
Hver posteringsliste kan kodes som en sekvens av heltall. Sekvensen skrives og leses sekvensielt fra starten av listen. Heltallene kan være kodet som et varierende antall biter avhengig av frekvensen til heltallet.
Kodingen som foreslås her, er basert på å gjøre heltallene så små som mulig. Det er en stor mengde velkjente kompresjonsmetoder som benytter denne egenskap for å redusere lagringsbehovene.
Docld kodes som forskjellen fra Docld i den foregående rad. For tekstindeksen kodes Position som forskjellen fra Position i den foregående rad hvis Docld-ene er de samme. Hvis det er en ny Docld, blir Position kodet som tallet selv.
StartPos for definisjonsområdeindeksen kodes på samme måte som Position i tekstindeksen. EndPos kodes som forskjellen fra StartPos i samme rad.
Katalogkompresjonen benyttes til å komprimere Veien. For å oppnå dette er det tre kataloger: Dimensjonskatalogen, veikatalogen og definisjonsområdekatalogen. Dimensjonskatalogen koder hver dimensjon som et entydig heltall som vist i nedenstående tabell 5.
Dimensjonskatalogen må inneholde en underforstått innførsel for symboler utenfor ethvert definisjonsområde.
Definisjonsområdekatalogen koder hvert definisjonsområde som et entydig heltall. Et definisjonsområde er signifikant hvis den orden definisjonsområdet forekommer i, benyttes i søkespørsmålet eller hvis definisjonsområdet kan forekomme flere ganger innenfor et umiddelbart omgivende definisjonsområde. Definisjonsområdekodingen er vist i tabell 6 nedenfor.
Veikatalogen koder veien (uten sekvensnumrene) til et entydig heltall. Katalogen kodes med de følgende felter som vist i tabell 7 nedenfor. For å være i stand til å kode symbolene utenfor ethvert definisjonsområde må veikatalogen inneholde minst en underforstått innførsel. For den underforståtte innførsel skal Dimension stilles inn som den underforståtte dimensjon, og Path og SequenceMap skal være tomme. PathLength og SequenceLength settes til 0.
Katalogene er delt mellom dimensjonene.
Katalogene for eksempeldataene på fig. 1 er gitt i tabellene 8, 9 og 10 nedenfor.
I dette eksempel er definisjonsområdet b blitt gitt et ekstra løft for høyere relevansskåre, og det er definert at c ikke er signifikant.
I de komprimerte posteringslister blir Path kodet som det tilsvarende Pathld, etterfulgt av sekvensnumrene til signifikante definisjonsområder. Ved å ordne veikatalogen med den mest frekvente vei først og etter fallende frekvens, vil de mest frekvente Pathld'er ha de laveste numre.
Sekvensnumrene for signifikante veier kodes sekvensielt i samme orden som i veien.
Posteringslistene i tekstindeksen i eksempelet på fig. 1 blir da:
Posteringslistene i definisjonsområdeindeksen i eksempelet på fig. 1 blir da:
Disse sekvensene kan kodes med bruk av en av de velkjente kompresjonsteknikker som huffman-, rice- eller vByte-koding. Rice-koding og vByte-koding kan benyttes uten forutgående kjennskap til fordelingen av numre (bortsett fra at de laveste numre er mer frekvente enn de store). Huffman-koding gir den beste kompresjon, men krever kjennskap til fordelingen på forhånd.
En alternativ måte for å kode de signifikante sekvensnumre er å benytte katalogkoding. De mest frekvente lister av sekvensnumre nummereres og representeres med de tilsvarende entydige id-nummer. Mindre frekvente lister kodes med et ubrukt id-nummer fulgt av listen til sekvensnumrene (akkurat som ovenfor).
I stedet for å kode posteringslisten med fulle rader hver gang er det mulig å benytte kjørelengdekoding for Docld. Første gang en Docld forekommer, blir radnumrene den befinner seg i gjentatt og vedføyd umiddelbart etter Docld. For de følgende rader utelates Docld. Posteringslistene i definisjonsområdeindeksen i eksempelet på fig. 1 blir da:
Dette skjemaet er mer plassbesparende hvis symbolet gjentas flere ganger i hvert dokument.
5.8 Konstruksjon
Den inverterte indeks beskrevet ovenfor bør konstrueres nøyaktig på samme måte som tradisjonelle inverterte indekser, med unntak av tilføyelse av Path-søylen til hver forekomstinnførsel.
Under konstruksjon av indeksene vil dokumenter skannes sekvensielt. Symboler og definisjonsområder ekstraheres og adderes til indeksen. Når et symbol blir addert, skaffes informasjon om posisjon, dimensjon og veien til det innesluttende definisjonsområde. Når et definisjonsområde tilføyes, angis informasjonen om startposisjon, sluttposisjon og veien for selve definisj onsområdet.
Fig. 2 viser en oversikt over den inverterte indeks i henhold til den foreliggende oppfinnelse og utført som en dobbelindeks med en tekstindeks og en definisj onsområdeindeks som begge er inverterte indekser, hver med et leksikon og en posteringsfil. Veifeltet i posteringsfilene gir referanser til innførsler i Path-katalogen. Path-katalogen inneholder innførsler med en liste av definisjonsområder oppført i definisjonsområdekatalogen. Definisjoner og veier tilhører en dimensjon oppført i dimensjonskatalogen. For de fleste applikasjoner er antallet entydige veier, definisjonsområder og dimensjoner lavt, og de tre katalogene kan bufferlagres i hovedminnet til et datamaskinsystem som indeksen implementeres på.
5.9 Datakataloger
For å være i stand til å kode Path-søylen er det nødvendig å ha de kataloger som er beskrevet ovenfor (dimensjonskatalogen, definisjonsområdekatalogen og veikatalogen). Disse katalogene kan enten være tilgjengelig på forhånd før dataene indekseres (statiske kataloger) eller konstrueres i forbifarten (dynamiske kataloger).
5.9.1 Statiske kataloger
Katalogene kan konstrueres helt på forhånd hvis det fullstendige skjema for dataene er kjent:
• Alle dimensjoner
• Alle definisjonsområder, hvilke dimensjoner de tilhører og hvorvidt de er signifikante
• Alle lovlige veier for definisjonsområdene
Uten forhåndsgitt skjemakjennskap kan katalogene konstrueres ved å utføre en fullstendig avsøking gjennom hele dokumentsamlingen. Hver gang en ny dimensjon, definisjonsområde eller vei påtreffes, blir størrelsen tilføyd til den tilsvarende katalog. Dimensionld og ScopelD kan tilordnes sekvensielt etter hvert som de ankommer, mens Pathld ikke bør tilordnes før samtlige dokumenter er blitt behandlet.
Under avsøkingen bør antallet ganger hver vei forekommer, telles. Etter avsøkingen bør veiene nummereres basert på fallende telling. Den mest frekvente vei bør få det minste Pathld. Dette vil forbedre kompresjonsraten. Veifrekvensene kan også benyttes til å lage en optimal huffmankoding for Pathld'ene.
Uten tidligere kjennskap til skjemaet vil det ikke være mulig å vite om et definisjonsområde er signifikant eller ikke, og derfor må hvert nytt definisjonsområde markeres signifikant.
5.9.2 Dynamiske kataloger
Katalogene kan også konstrueres i forbifarten mens en dokumentsamling indekseres. Når en term eller et definisjonsområde tilføyes, blir katalogene benyttet til å kode Path-feltet. Når dimensjon, definisjonsområde eller vei ikke kan finnes i katalogene, blir størrelsen føyd til til den tilsvarende katalog og en ny Dimensionld, ScopelD eller Pathld tilordnet.
Innlysende kan sjeldent forekommende veier få små Pathld'er som ikke er optimale for kompresjon. På den annen side vil de fleste hyppige veier snart benyttes og få relativt små identifikatorer.
Sampling kan benyttes til å forbedre tilordningen av Pathld'er. Dette gjøres ved å sample en liten undermengde av dokumentene som inneholder en representativ blanding av de forskjellige dokumenttyper. Denne undermengde kan avsøkes og benyttes til å danne initiale kataloger basert på frekvens. De mest frekvente veier bør være representert i denne undermengde med relativt de samme frekvenser som i den samlede dokumentsamling. Noen dimensjoner, definisjonsområder og veier vil sannsynligvis ikke foreligge, men de vil være lite hyppige og kan adderes i forbifarten.
En populær måte for å konstruere inverterte indekser er å danne mindre inverterte indeksfiler på størrelse av en eller annen hovedminnebuffer. Når hele samlingen er blitt behandlet, blir mengden av små indeksfiler sammenflettet til en stor indeksfil.
Hver av disse små indeksfilene kan ha sitt eget katalogsett og sin egen koding. Katalogsettet med frekvensnumrene skrives enten ved slutten av en indeksfil eller som en separat fil. Prosessen med å flette sammen indeksfilene starter med å lese katalogmengden og kombinere frekvensene til en global katalogmengde som vil bli benyttet til å kode den store, kombinerte indeksfil.
5.10 Gjenfinning
Den foreliggende oppfinnelse skaffer også et veifilter for bruk med indeksen i henhold til oppfinnelsen. Veifiltre og deres bruk skal nå drøftes i generelle vendinger så vel som spesifikk henvisning til veifilteret i henhold til den foreliggende oppfinnelse.
De fleste avspørringer som benytter veiinformasjon, starter med å danne ett eller flere veifiltre. Et veifilter dannes av et veimønster som er et uttrykk som definerer hvilke veier som tilsvarer eller ikke. Veimønsteret kan være en XPath-uttrykk eller et enkelt wildcard-uttrykk. Et wildcard-uttrykk kan defineres som en sekvens av definisjonsområdenavn adskilt med symbol"/". Det ytterste definisjonsområdet skrives først, deretter definisjonsområdet umiddelbart inneholdt i dette etc., inntil det avsluttes med det innerste definisjonsområdet. Ethvert sted kan et definisjonsområde nå erstattes med et "?" som betyr at det tilsvarer et hvilket som helst definisjonsområde. Hvilken som helst sekvens av null eller flere definisj onsområdenavn erstattes av "<*>". Alternativer kan omgis av symboler "["og"]" og adskilt med kommaer. Eksempler: • "/document" tilsvarer bare veiene med "document" som rotdefinisjonsområde og uten noen underdefinisjonsområder. • "/document/chapter/paragraph/sentence" tilsvarer veier med "sentence"som bladdefinisjonsområde og "paragraph" som det umiddelbart omgivende definisjonsområde. "chapter" omgir "paragraph", mens "document" er rotdefinisj onsområdet. • "/document/?" tilsvarer hvilken som helst vei av dybde 2 med "document" som rotdefinisjonsområde, f.eks. "/document/sentence". • "/document/* "tilsvarer hvilken som helst vei av dybde 1 eller høyere med "document" som rotdefinisjonsområde, f.eks. "/document", eller <7>document/sentence"<e>ller "/document/chapter/paragraph/sentence". • 7document/<*>/sentence" tilsvarer hvilken som helst vei av dybde 2 eller høyere med "document" som rotdefinisjonsområde og "sentence" som bladdefinisjonsområde, f.eks.. "/document/sentence" eller "/document/chapter/paragraph/sentence". • 7document/[chapter,section]/paragraph" vil tilsvare de to veier "/document/chapter/paragraph" og "/document/section/paragraph".
Regulære uttrykk og XPath-uttrykk er andre velkjente utsagnspråk og kan benyttes til å uttrykke veiutsagn. Disse er velkjente i litteraturen og vil ikke bli beskrevet nærmere her.
Et veifilter kan representeres som en bitvektor med en bit for hver vei i veikatalogen. Pathld benyttes som en indeks inn i veifilteret. En bitmengde i bitvektoren betyr at den tilsvarende vei i veikatalogen tilsvarer veiutsagnet.
Et utvidet veifilter presenteres av en heltallsvektor med et heltall for hver vei. Hvis heltallet er -1, er det ikke noe tilsvar for denne veien. Hvis tallet er større eller lik 0, angir den hvor langt et prefiks av sekvensnumre i dette veiutsagn tilsvarer veien. Anta for eksempel at utsagnet er "/document/ Vparagraph/<*>". Videre anta at "chapter" og "paragraph" er signifikante, mens "document" ikke er det. Sekvensnummerprefikset for veien "/document/chapter/paragraph/ sentence" blir da 2. Sekvensnummerprefikset for veien "/document/paragraph/sentence" blir 1.
Veifilteret kan konstrueres på en rekke forskjellige måter. Den enkleste er å starte med en renset vektor (bit fjernet, heltall satt til -1) og iterere gjennom alle veier i veikatalogen. For hver vei vil den tilsvarende bit/heltall i vektoren stilles inn hvis veien svarer til veiuttrykket.
For store veikataloger kan dette ta lang tid. Bruk av indeksstrukturer kan gjøre det raskere å finne tilsvarende veier. Det er en rekke velkjente indeksstrukturer som kan benyttes. En måte er å opprettholde et suffikstre eller suffiksmatrise over alle veier i en veikatalog. En annen er å danne en invertert indeks over alle definisjonsområder og slå opp alle mulige tilsvarende veier ved å kombinere posteringslistene for hvert definisj onsområdenavn i veiuttrykket. Dette er kjent teknikk og skal ikke beskrives nærmere her. Felles for disse indeksene er at for hver vei som finnes å svare til veiutsagnet, blir den tilsvarende bit/heltall stilt inn i veifilteret.
Veifilteret definert her kan benyttes for et bredt område av søkespørsmål.
5.10.1 Innholdsspørsmål med en enkelt term
Dette er et spørsmål på formen "finn alle dokumenter med et gitt ord innenfor en vei spesifisert med et veiuttrykk", f.eks. finn alle dokumenter med "John" innenfor en 7*/name"-vei.
Et slikt spørsmål evalueres ved først å danne et veifilter for veiuttrykket. Deretter gjenfinnes posteringslisten for forekomsten av ordet fra tekstindeksen. Det neste trinn er å reiterere gjennom posteringslisten og for hver postering jevnføre Pathld med biten i veifilteret. Hvis biten blir stilt inn, blir Docld tilføyd til mengden av tilsvarende dokumenter. Når alle posteringer er blitt inspisert, representerer mengden av tilsvarende dokumenter resultatet for søkespørsmålet.
5.10.2 OG- innholdsspørsmål med flere termer
Et slik spørsmål evalueres ved først å danne et utvidet veifilter for veiuttrykket. Deretter blir posteringslistene for forekomster av alle ord gjenfunnet fra tekstindeksen. Deretter itereres det gjennom posteringslistene i parallell og synkronisert med hensyn til Docld. Hvis alle posteringslister har den samme Docld og samtidig tilsvarer veifilteret for minst en Pathld, må sekvensnumrene sjekkes. Hvis sekvensnumrene for hver av posteringslinjene svarer opp til indeksen gitt ved heltallet i veifilteret, kan Docld tilføyes til mengden av tilsvarende dokumenter.
Spørsmål fra en tekst innenfor et definisjonsområde kan eksekveres på samme måte, men i tillegg kan også det også sjekkes at posisjonsverdier er korrekte relativt til hverandre.
5.10.3 Strukturspørsmål
Dette er spørsmål av formen "finn alle dokumenter med et spesifikt definisjonsområde som foreligger innefor en vei spesifisert med et veiuttrykk", for eksempel finne alle dokumenter med et definisjonsområde "name" innenfor en vei "/♦/tittel/<*>".
Dette blir evaluert på samme måte som innholdsspørsmål med en enkelt term, men med oppslag i definisjonsområdeindeksen i stedet for tekstindeksen.

Claims (16)

1. Invertert indeks for kontekstuelt søk i en samling av dokumenter, hvor kontekstuelt søk benyttes til å gjenfinne ett eller flere symboler i et dokument så vel som en kontekst hvori de ett eller flere symboler forekommer, hvor konteksten utgjør enhver identifiserbar struktur i et dokument, hvor enhver spesifikk enkelt kontekst utgjør et definisjonsområde for dokumentet; hvor den inverterte indeks minst omfatter en underindeks i form av en tekstindeks med tekstsymboler, hvor tekstindeksen omfatter dataposter formatert med et første felt som identifiserer dokumentet hvor symbolet befinner seg, et annet felt for posisjonen av symbolet i dokumentet, et tredje felt for veien til definisjonsområdet som omslutter symbolet, og hvor datapostene utgjør en posteringsliste for tekstindeksen, slik at indeksen omfatter informasjon om veiene for hver eneste forekomst av symbolene og følgelig muliggjør et kontekstuelt søk.
2. Indeks i henhold til krav 1, karakterisert ved at det siste definisjonsområde i en vei i posteringslisten for tekstindeksen er definisjonsområdet som omslutter symbolet.
3. Indeks i henhold til krav 1, karakterisert ved at posteringslisten for symbolet i et dokument sorteres initialt på økende dokumentidentifikasjon, deretter på posisjoner og endelig på vei.
4. Indeks i henhold til krav 1, karakterisert ved at den er en dobbeltindeks som i tillegg til tekstindeksen omfatter en annen underindeks i form av en definisjonsområdeindeks for definisjonsområder hvor teksten forekommer, og at definisjonsområdeindeksen omfatter dataposter formatert med et første felt for å identifisere dokumentet hvor definisjonsområdet befinner seg, et annet felt for startposisjonen til definisjonsområdet i dette dokument, et tredje felt for sluttposisjonen til definisjonsområdet i dette dokument og et fjerde felt for veien til definisjonsområdet og alltid med definisjonsområdet selv innbefattet, idet datapostene utgjør en posteringsliste for definisjonsområdeindeksen.
5. Indeks i henhold til krav 4, karakterisert ved at en datapost i posteringslisten for henholdsvis tekstindeksen og definisjonsområdet i indeksen er en ordnet liste av nøstede definisjonsområder og deres dimensjoner.
6. Indeks i henhold til krav 4, karakterisert ved at posteringslisten til definisjonsområdet i indeksen initialt sorteres på økende dokumentidentifikasjon, deretter på startposisjon og endelig på vei.
7. Indeks i henhold til krav 4, karakterisert ved at veien til definisjonsområdeindeksen innbefatter definisjonsområdet selv som det endelige definisjonsområde for veien.
8. Indeks i henhold til krav 4, karakterisert ved at den omfatter indekserte, multiple dimensjoner for definisjonsområdene, med en forekomst for hver dimensjon.
9. Indeks i henhold til krav 4, karakterisert ved at den omfatter indekserte tekstsymboler for å utføre en fritekstsøking og/eller indekserte definisj onsområdenavn for å søke med strukturerte søkespørsmål.
10. Indeks i henhold til krav 4, karakterisert ved at veiene er kodet med en veikatalog.
11. Indeks i henhold til krav 4, karakterisert ved at bare signifikante sekvensnumre er kodet.
12. Veifilter for bruk med den inverterte indeks for kontekstuelt søk, hvor veifilteret omfatter et veimønster i form av uttrykk som definerer hvilke veier som tilsvarer eller ikke tilsvarer et søkespørsmål.
13. Veifilter i henhold til krav 12, karakterisert ved at det er basert på en veikatalog.
14. Veifilter i henhold til krav 12, karakterisert ved at det er tilpasset for å jevnføre veier kodet i indeksen, hvorved dokumenter med en term (symbol) innenfor et spesifisert veiuttrykk eller med multiple termer innenfor ett og samme spesifiserte veiuttrykk kan finnes.
15. Veifilter i henhold til krav 12, karakterisert ved at det er et enkelt veifilter representert som en bitvektor med én bit for hver vei i veikatalogen.
16. Veifilter i henhold til krav 12, karakterisert ved at det er et utvidet veifilter representert som en heltallsvektor med et heltall for hver vei i veikatalogen.
NO20085365A 2008-12-22 2008-12-22 Invertert indeks for kontekstuell søk NO20085365A (no)

Priority Applications (2)

Application Number Priority Date Filing Date Title
NO20085365A NO20085365A (no) 2008-12-22 2008-12-22 Invertert indeks for kontekstuell søk
US12/643,588 US20100161623A1 (en) 2008-12-22 2009-12-21 Inverted Index for Contextual Search

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NO20085365A NO20085365A (no) 2008-12-22 2008-12-22 Invertert indeks for kontekstuell søk

Publications (2)

Publication Number Publication Date
NO328657B1 true NO328657B1 (no) 2010-04-19
NO20085365A NO20085365A (no) 2010-04-19

Family

ID=42154103

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20085365A NO20085365A (no) 2008-12-22 2008-12-22 Invertert indeks for kontekstuell søk

Country Status (2)

Country Link
US (1) US20100161623A1 (no)
NO (1) NO20085365A (no)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024442B1 (en) * 2008-07-08 2011-09-20 Network Appliance, Inc. Centralized storage management for multiple heterogeneous host-side servers
US20110022600A1 (en) * 2009-07-22 2011-01-27 Ecole Polytechnique Federale De Lausanne Epfl Method of data retrieval, and search engine using such a method
US9158754B2 (en) 2012-03-29 2015-10-13 The Echo Nest Corporation Named entity extraction from a block of text
US9547679B2 (en) 2012-03-29 2017-01-17 Spotify Ab Demographic and media preference prediction using media content data analysis
US9406072B2 (en) 2012-03-29 2016-08-02 Spotify Ab Demographic and media preference prediction using media content data analysis
US10565198B2 (en) 2015-06-23 2020-02-18 Microsoft Technology Licensing, Llc Bit vector search index using shards
US10733164B2 (en) 2015-06-23 2020-08-04 Microsoft Technology Licensing, Llc Updating a bit vector search index
US10242071B2 (en) 2015-06-23 2019-03-26 Microsoft Technology Licensing, Llc Preliminary ranker for scoring matching documents
US11281639B2 (en) 2015-06-23 2022-03-22 Microsoft Technology Licensing, Llc Match fix-up to remove matching documents
US11392568B2 (en) 2015-06-23 2022-07-19 Microsoft Technology Licensing, Llc Reducing matching documents for a search query
US10467215B2 (en) 2015-06-23 2019-11-05 Microsoft Technology Licensing, Llc Matching documents using a bit vector search index
US10229143B2 (en) 2015-06-23 2019-03-12 Microsoft Technology Licensing, Llc Storage and retrieval of data from a bit vector search index
US9798823B2 (en) 2015-11-17 2017-10-24 Spotify Ab System, methods and computer products for determining affinity to a content creator
JP7210130B2 (ja) * 2017-04-07 2023-01-23 富士通株式会社 符号化プログラム、符号化方法および符号化装置
CN112513836B (zh) * 2018-07-25 2024-03-26 起元技术有限责任公司 结构化记录检索方法、计算系统和计算机可读介质
CN110297829A (zh) * 2019-06-26 2019-10-01 重庆紫光华山智安科技有限公司 一种面向特定行业结构化业务数据的全文检索方法及系统
WO2023131784A1 (en) * 2022-01-06 2023-07-13 University Of Exeter Semantic search engine

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2929963B2 (ja) * 1995-03-15 1999-08-03 松下電器産業株式会社 文書検索装置および単語索引作成方法および文書検索方法
JP3887867B2 (ja) * 1997-02-26 2007-02-28 株式会社日立製作所 構造化文書の登録方法
US6098066A (en) * 1997-06-13 2000-08-01 Sun Microsystems, Inc. Method and apparatus for searching for documents stored within a document directory hierarchy
WO2003001720A2 (en) * 2001-06-21 2003-01-03 Isc, Inc. Database indexing method and apparatus
US7171404B2 (en) * 2002-06-13 2007-01-30 Mark Logic Corporation Parent-child query indexing for XML databases
US7424467B2 (en) * 2004-01-26 2008-09-09 International Business Machines Corporation Architecture for an indexer with fixed width sort and variable width sort
US7493305B2 (en) * 2004-04-09 2009-02-17 Oracle International Corporation Efficient queribility and manageability of an XML index with path subsetting
US7512592B2 (en) * 2004-07-02 2009-03-31 Tarari, Inc. System and method of XML query processing
US20060047691A1 (en) * 2004-08-31 2006-03-02 Microsoft Corporation Creating a document index from a flex- and Yacc-generated named entity recognizer
US20060248037A1 (en) * 2005-04-29 2006-11-02 International Business Machines Corporation Annotation of inverted list text indexes using search queries
US7499858B2 (en) * 2006-08-18 2009-03-03 Talkhouse Llc Methods of information retrieval
JP4374014B2 (ja) * 2006-11-21 2009-12-02 株式会社日立製作所 インデクス生成装置及びそのプログラム
US7496568B2 (en) * 2006-11-30 2009-02-24 International Business Machines Corporation Efficient multifaceted search in information retrieval systems
US8972377B2 (en) * 2007-10-25 2015-03-03 International Business Machines Corporation Efficient method of using XML value indexes without exact path information to filter XML documents for more specific XPath queries
US7991768B2 (en) * 2007-11-08 2011-08-02 Oracle International Corporation Global query normalization to improve XML index based rewrites for path subsetted index

Also Published As

Publication number Publication date
NO20085365A (no) 2010-04-19
US20100161623A1 (en) 2010-06-24

Similar Documents

Publication Publication Date Title
NO328657B1 (no) Invertert indeks for kontekstuell sok
Martínez-Prieto et al. Practical compressed string dictionaries
KR101450358B1 (ko) 구조형 지리적 데이터 검색
US9619565B1 (en) Generating content snippets using a tokenspace repository
KR101157693B1 (ko) 토큰스페이스 저장소와 함께 사용하기 위한 멀티-스테이지질의 처리 시스템 및 방법
US20120117077A1 (en) Annotation Framework
US8346813B2 (en) Using node identifiers in materialized XML views and indexes to directly navigate to and within XML fragments
US8805808B2 (en) String and sub-string searching using inverted indexes
US20130262485A1 (en) High Efficiency Prefix Search Algorithm Supporting Interactive, Fuzzy Search on Geographical Structured Data
US20020156779A1 (en) Internet search engine
KR20160060253A (ko) 자연어 질의 응답 시스템 및 방법
JP2005251115A (ja) 連想検索システムおよび連想検索方法
US6691103B1 (en) Method for searching a database, search engine system for searching a database, and method of providing a key table for use by a search engine for a database
Geleijnse et al. Automatic Ontology Population by Googling.
US20170242880A1 (en) B-tree index structure with grouped index leaf pages and computer-implemented method for modifying the same
US20050187964A1 (en) Method and apparatus for retrieving natural language text
Manguinhas et al. A geo-temporal web gazetteer integrating data from multiple sources
Klaib et al. Investigation into indexing XML data techniques
CN100496091C (zh) 在有线电视单向机顶盒中进行全文检索的系统
JP2005056223A (ja) テキストデータ検索システム、その方法及びそのプログラム
CN102722527A (zh) 一种支持含有缺失符号的查询请求的全文检索方法
Schmidt et al. Quantitative considerations about the semantic relationship of entities in a document corpus
Mohammad et al. LTIX: a compact level-based tree to index XML databases
KR20060094000A (ko) 데이터베이스 개념 구조에 기반한 xml 트리의 색인 및질의 방법
Redwan et al. Search engine for amharic web content

Legal Events

Date Code Title Description
MM1K Lapsed by not paying the annual fees