Indexarea motoarelor de căutare - Search engine indexing

Indexarea motoarelor de căutare este colectarea, analizarea și stocarea datelor pentru a facilita regăsirea rapidă și precisă a informațiilor . Proiectarea indexului încorporează concepte interdisciplinare din lingvistică, psihologie cognitivă, matematică, informatică și informatică. Un nume alternativ pentru proces, în contextul motoarelor de căutare concepute pentru a găsi pagini web pe Internet, este indexarea web . Sau doar indexarea.

Motoarele populare se concentrează pe indexarea textului integral a documentelor online, în limbaj natural. Tipuri media precum video, audio și grafică sunt, de asemenea, căutabile.

Motoarele de căutare Meta reutilizează indicii altor servicii și nu stochează un index local, în timp ce motoarele de căutare bazate pe cache stochează permanent indexul împreună cu corpusul . Spre deosebire de indicii cu text integral, serviciile cu text parțial restricționează adâncimea indexată pentru a reduce dimensiunea indexului. Serviciile mai mari efectuează de obicei indexarea la un interval de timp prestabilit din cauza timpului necesar și a costurilor de procesare, în timp ce motoarele de căutare bazate pe agenți indexează în timp real .

Indexare

Scopul stocării unui index este de a optimiza viteza și performanța în găsirea documentelor relevante pentru o interogare de căutare. Fără un index, motorul de căutare ar scana fiecare document din corpus , ceea ce ar necesita timp și putere de calcul considerabile. De exemplu, în timp ce un index de 10.000 de documente poate fi interogat în câteva milisecunde, o scanare secvențială a fiecărui cuvânt din 10.000 de documente mari ar putea dura câteva ore. Stocarea suplimentară pe computer necesară pentru stocarea indexului, precum și creșterea considerabilă a timpului necesar pentru a avea loc o actualizare, sunt schimbate pentru timpul economisit în timpul recuperării informațiilor.

Factori de proiectare a indexului

Factorii majori în proiectarea arhitecturii unui motor de căutare includ:

Combinați factorii
Cum intră datele în index sau cum sunt adăugate cuvintele sau caracteristicile subiectului la index în timpul traversării corpului de text și dacă mai mulți indexatori pot funcționa asincron. Indexatorul trebuie să verifice mai întâi dacă actualizează conținut vechi sau adaugă conținut nou. Traversalul se corelează de obicei cu politica de colectare a datelor . Combinarea indexului motorului de căutare este similară ca concept cu comanda SQL Merge și cu alți algoritmi de îmbinare.
Tehnici de depozitare
Cum se stochează datele indexului , adică dacă informațiile ar trebui să fie date comprimate sau filtrate.
Dimensiunea indexului
Cât spațiu de stocare pentru computer este necesar pentru a susține indexul.
Viteza de căutare
Cât de repede poate fi găsit un cuvânt în indexul inversat . Viteza de a găsi o intrare într-o structură de date, în comparație cu cât de repede poate fi actualizată sau eliminată, este un punct central al informaticii.
întreținere
Cum se menține indicele în timp.
Toleranță la erori
Cât de important este ca serviciul să fie fiabil. Problemele includ tratarea corupției indexului, stabilirea dacă datele rele pot fi tratate în mod izolat, gestionarea hardware-ului rău, partiționarea și scheme precum partiționarea bazată pe hash sau compoziția, precum și replicarea .

Structuri de date index

Arhitecturile motoarelor de căutare variază în modul în care se efectuează indexarea și în metodele de stocare a indexului pentru a îndeplini diferiții factori de proiectare.

Arborele sufixului
Structurat figurativ ca un copac, acceptă căutarea liniară în timp. Construit prin stocarea sufixelor cuvintelor. Arborele sufixului este un tip de trie . Încercările acceptă hash extensibil , care este important pentru indexarea motoarelor de căutare. Folosit pentru căutarea modelelor în secvențe ADN și în grupare. Un dezavantaj major este că stocarea unui cuvânt în copac poate necesita spațiu dincolo de cel necesar pentru a stoca cuvântul în sine. O reprezentare alternativă este o matrice de sufixe , care se consideră că necesită mai puțină memorie virtuală și acceptă compresia datelor, cum ar fi algoritmul BWT .
Indice inversat
Stochează o listă de apariții a fiecărui criteriu de căutare atomică, de obicei sub forma unui tabel hash sau a unui arbore binar .
Indicele de citare
Stochează citate sau hyperlink-uri între documente pentru a sprijini analiza citatelor, un subiect de bibliometrie .
n -indice gram
Stochează secvențe de lungime a datelor pentru a susține alte tipuri de recuperare sau extragere a textului .
Matrice document-termen
Folosit în analiza semantică latentă, stochează aparițiile cuvintelor din documente într- o matrice redusă bidimensională .

Provocări în paralelism

O provocare majoră în proiectarea motoarelor de căutare este gestionarea proceselor de calcul serial. Există multe oportunități pentru condiții de cursă și defecte coerente. De exemplu, un nou document este adăugat la corpus și indexul trebuie actualizat, dar indexul trebuie să răspundă simultan la interogările de căutare. Aceasta este o coliziune între două sarcini concurente. Luați în considerare faptul că autorii sunt producători de informații, iar un crawler web este consumatorul acestor informații, apucând textul și stocându-l într-un cache (sau corpus ). Indicele forward este consumatorul informațiilor produse de corpus, iar indexul inversat este consumatorul informațiilor produse de indexul forward. Acest lucru este denumit în mod obișnuit un model producător-consumator . Indexatorul este producătorul de informații care pot fi căutate, iar utilizatorii sunt consumatorii care trebuie să caute. Provocarea este mărită atunci când se lucrează cu stocare distribuită și procesare distribuită. Într-un efort de a scala cu cantități mai mari de informații indexate, arhitectura motorului de căutare poate implica calcul distribuit , unde motorul de căutare constă din mai multe mașini care funcționează la unison. Acest lucru crește posibilitățile de incoerență și face mai dificilă menținerea unei arhitecturi paralele complet sincronizate, distribuite.

Indici inversați

Multe motoare de căutare încorporează un index inversat atunci când evaluează o interogare de căutare pentru a localiza rapid documentele care conțin cuvintele dintr-o interogare și apoi clasifica aceste documente după relevanță. Deoarece indexul inversat stochează o listă a documentelor care conțin fiecare cuvânt, motorul de căutare poate utiliza accesul direct pentru a găsi documentele asociate fiecărui cuvânt din interogare pentru a prelua rapid documentele care se potrivesc. Următoarea este o ilustrare simplificată a unui indice inversat:

Indice inversat
Cuvânt Documente
the Document 1, Document 3, Document 4, Document 5, Document 7
vacă Document 2, Document 3, Document 4
spune Documentul 5
moo Documentul 7

Acest index poate determina doar dacă un cuvânt există într-un anumit document, deoarece nu stochează informații referitoare la frecvența și poziția cuvântului; de aceea este considerat a fi un indice boolean . Un astfel de index determină ce documente corespund unei interogări, dar nu clasează documentele potrivite. În unele modele, indexul include informații suplimentare, cum ar fi frecvența fiecărui cuvânt din fiecare document sau pozițiile unui cuvânt din fiecare document. Informațiile de poziție permit algoritmului de căutare să identifice proximitatea cuvintelor pentru a susține căutarea de fraze; frecvența poate fi utilizată pentru a ajuta la clasificarea relevanței documentelor la interogare. Astfel de subiecte sunt centrul de cercetare central al recuperării informațiilor .

Indexul inversat este o matrice rară , deoarece nu toate cuvintele sunt prezente în fiecare document. Pentru a reduce cerințele de memorie de stocare pe computer , acesta este stocat diferit de un tablou bidimensional . Indicele este similar cu termenul matrice de documente utilizate de analiza semantică latentă . Indicele inversat poate fi considerat o formă de tabel hash. În unele cazuri, indexul este o formă de arbore binar , care necesită stocare suplimentară, dar poate reduce timpul de căutare. În indicii mai mari, arhitectura este de obicei un tabel de hash distribuit .

Combinarea indexului

Indexul inversat este completat printr-o îmbinare sau reconstruire. O reconstruire este similară unei îmbinări, dar mai întâi șterge conținutul indexului inversat. Arhitectura poate fi proiectată pentru a susține indexarea incrementală, în cazul în care o îmbinare identifică documentul sau documentele care trebuie adăugate sau actualizate și apoi analizează fiecare document în cuvinte. Pentru precizie tehnică, o îmbinare combină documentele nou indexate, care de obicei se află în memoria virtuală, cu memoria cache a indexului care se află pe una sau mai multe unități de hard disk ale computerului.

După analiză, indexatorul adaugă documentul de referință la lista de documente pentru cuvintele corespunzătoare. Într-un motor de căutare mai mare, procesul de găsire a fiecărui cuvânt în indexul inversat (pentru a raporta că a apărut în cadrul unui document) poate consuma prea mult timp, astfel încât acest proces este de obicei împărțit în două părți, dezvoltarea unui forward index și un proces care sortează conținutul indexului forward în indexul inversat. Indicele inversat se numește astfel deoarece este o inversiune a indicelui direct.

Indicele forward

Indexul direct stochează o listă de cuvinte pentru fiecare document. Următoarea este o formă simplificată a indexului direct:

Indicele forward
Document Cuvinte
Documentul 1 vaca, spune, moo
Documentul 2 pisica și pălăria
Documentul 3 vasul a fugit, cu, lingura

Rațiunea din spatele dezvoltării unui index înainte este că, pe măsură ce documentele sunt analizate, este mai bine să stocați în mod intermediar cuvintele pentru fiecare document. Delimitarea permite procesarea asincronă a sistemului, care ocolește parțial blocajul actualizării indexului inversat . Indicele direct este sortat pentru a-l transforma într-un index inversat. Indexul direct este în esență o listă de perechi formate dintr-un document și un cuvânt, culese de document. Conversia indexului direct la un index inversat este doar o chestiune de sortare a perechilor după cuvinte. În această privință, indexul inversat este un index forward sortat în funcție de cuvinte.

Comprimare

Generarea sau menținerea unui index pe scară largă a motorului de căutare reprezintă o provocare semnificativă de stocare și procesare. Multe motoare de căutare utilizează o formă de compresie pentru a reduce dimensiunea indicilor de pe disc . Luați în considerare următorul scenariu pentru un text complet, motor de căutare pe Internet.

Având în vedere acest scenariu, un index necomprimat (presupunând un index necombinat , simplu) pentru 2 miliarde de pagini web ar trebui să stocheze 500 de miliarde de intrări de cuvinte. La 1 octeți pe caracter sau 5 octeți pe cuvânt, acest lucru ar necesita 2500 de gigaocteți de spațiu de stocare. Această cerință de spațiu poate fi chiar mai mare pentru o arhitectură de stocare distribuită tolerantă la defecțiuni. În funcție de tehnica de compresie aleasă, indicele poate fi redus la o fracțiune din această dimensiune. Compensarea este timpul și puterea de procesare necesare pentru a efectua compresia și decompresia.

În special, proiectele de motoare de căutare la scară largă încorporează costul stocării, precum și costurile energiei electrice pentru alimentarea stocării. Astfel, compresia este o măsură a costului.

Analizarea documentelor

Analiza documentelor separă componentele (cuvintele) unui document sau alte forme de suport pentru a fi inserate în indicii înainte și inversați. Cuvintele găsite se numesc jetoane și, prin urmare, în contextul indexării motorului de căutare și al procesării limbajului natural , analizarea este denumită mai frecvent ca tokenizare . Se mai numește uneori și dezambiguizarea limitării cuvintelor , etichetarea , segmentarea textului , analiza conținutului , analiza textului , extragerea textului , generarea concordanței , segmentarea vorbirii , lexing sau analiză lexicală . Termenii „indexare”, „analiză” și „tokenizare” sunt folosiți în mod alternativ în argoul corporativ.

Prelucrarea limbajului natural face obiectul cercetării continue și al îmbunătățirii tehnologice. Tokenizarea prezintă numeroase provocări în extragerea informațiilor necesare din documente pentru indexare pentru a susține căutarea de calitate. Tokenizarea pentru indexare implică mai multe tehnologii, a căror implementare este păstrată în mod obișnuit ca secrete corporative.

Provocări în procesarea limbajului natural

Ambiguitatea limită a cuvântului
Vorbitorii nativi de engleză pot considera la început tokenizarea ca o sarcină simplă, dar nu este cazul proiectării unui indexator multilingv . În formă digitală, textele altor limbi, cum ar fi chineza , japoneza sau araba, reprezintă o provocare mai mare, întrucât cuvintele nu sunt clar delimitate de spațiu . Scopul în timpul tokenizării este de a identifica cuvintele pentru care utilizatorii vor căuta. Logica specifică limbii este utilizată pentru a identifica în mod corespunzător granițele cuvintelor, care este adesea motivul pentru proiectarea unui analizor pentru fiecare limbă acceptată (sau pentru grupuri de limbi cu markeri și sintaxă de limită similare).
Ambiguitatea limbajului
Pentru a ajuta la clasarea corectă a documentelor de potrivire, multe motoare de căutare colectează informații suplimentare despre fiecare cuvânt, cum ar fi limbajul sau categoria lexicală ( parte a vorbirii ). Aceste tehnici sunt dependente de limbă, deoarece sintaxa variază între limbi. Documentele nu identifică întotdeauna în mod clar limba documentului sau îl reprezintă corect. În simbolizarea documentului, unele motoare de căutare încearcă să identifice automat limba documentului.
Diverse formate de fișiere
Pentru a identifica corect ce octeți ai unui document reprezintă caractere, formatul de fișier trebuie tratat corect. Motoarele de căutare care acceptă mai multe formate de fișiere trebuie să poată deschide și accesa corect documentul și să poată simboliza caracterele documentului.
Depozitare defectă
Calitatea datelor limbajului natural nu este întotdeauna perfectă. Un număr nespecificat de documente, în special pe internet, nu respectă îndeaproape protocolul de fișier adecvat. Caracterele binare pot fi codificate greșit în diferite părți ale unui document. Fără recunoașterea acestor caractere și o manipulare adecvată, calitatea indexului sau performanța indexerului ar putea degrada.

Tokenizarea

Spre deosebire de oamenii alfabetizați , computerele nu înțeleg structura unui document în limbaj natural și nu pot recunoaște automat cuvinte și propoziții. Pentru un computer, un document este doar o secvență de octeți. Computerele nu știu că un caracter spațial separă cuvintele dintr-un document. În schimb, oamenii trebuie să programeze computerul pentru a identifica ceea ce constituie un cuvânt individual sau distinct, denumit simbol. Un astfel de program este denumit în mod obișnuit tokenizer sau parser sau lexer . Multe motoare de căutare, precum și alte software-uri de procesare a limbajului natural, încorporează programe specializate pentru analiză, precum YACC sau Lex .

În timpul tokenizării, analizorul identifică secvențe de caractere care reprezintă cuvinte și alte elemente, cum ar fi punctuația, care sunt reprezentate prin coduri numerice, dintre care unele sunt caractere de control care nu se tipăresc. Analizatorul poate identifica, de asemenea, entități precum adrese de e-mail , numere de telefon și adrese URL . La identificarea fiecărui simbol, pot fi stocate mai multe caracteristici, cum ar fi cazul simbolului (superior, inferior, mixt, adecvat), limbă sau codificare, categorie lexicală (parte a vorbirii, cum ar fi „substantiv” sau „verb”), poziție, propoziție numărul, poziția propoziției, lungimea și numărul liniei.

Recunoașterea limbii

Dacă motorul de căutare acceptă mai multe limbi, un pas inițial comun în timpul tokenizării este identificarea limbii fiecărui document; mulți dintre pașii ulteriori sunt dependenți de limbă (cum ar fi stemming și o parte a etichetării vorbirii ). Recunoașterea limbii este procesul prin care un program de computer încearcă să identifice sau să clasifice automat limba unui document. Alte nume pentru recunoașterea limbii includ clasificarea limbii, analiza limbii, identificarea limbii și etichetarea limbii. Recunoașterea automată a limbajului face obiectul cercetărilor în curs în procesarea limbajului natural . Găsirea la care limbă aparține cuvintele poate implica utilizarea unei diagrame de recunoaștere a limbii .

Analiza formatului

Dacă motorul de căutare acceptă mai multe formate de documente, documentele trebuie pregătite pentru tokenizare. Provocarea este că multe formate de documente conțin informații de formatare pe lângă conținutul textual. De exemplu, documentele HTML conțin etichete HTML, care specifică informații de formatare, cum ar fi pornire de linie nouă, accent accentuat și dimensiunea sau stilul fontului . Dacă motorul de căutare ar ignora diferența dintre conținut și „markup”, informațiile străine ar fi incluse în index, ducând la rezultate de căutare slabe. Analiza formatului este identificarea și gestionarea conținutului de formatare încorporat în documente care controlează modul în care documentul este redat pe ecranul unui computer sau interpretat de un program software. Analiza formatului este, de asemenea, denumită analiza structurii, analiza formatelor, eliminarea etichetelor, eliminarea formatelor, normalizarea textului, curățarea textului și pregătirea textului. Provocarea analizei formatelor este complicată și mai mult de complexitatea diferitelor formate de fișiere. Anumite formate de fișiere sunt proprietare, cu foarte puține informații dezvăluite, în timp ce altele sunt bine documentate. Formate de fișiere comune, bine documentate, pe care le acceptă multe motoare de căutare includ:

Opțiunile pentru tratarea diferitelor formate includ utilizarea unui instrument de analiză comercială disponibil public oferit de organizația care a dezvoltat, întreține sau deține formatul și scrierea unui analizor personalizat .

Unele motoare de căutare acceptă inspecția fișierelor stocate într-un format de fișier comprimat sau criptat. Când lucrați cu un format comprimat, indexerul mai întâi decomprimă documentul; acest pas poate avea ca rezultat unul sau mai multe fișiere, fiecare dintre acestea trebuie indexat separat. Formatele de fișiere comprimate acceptate în mod obișnuit includ:

  • ZIP - fișier arhivă zip
  • RAR - fișier Roshal ARchive
  • CAB - Microsoft Windows Dulapul de fișiere
  • Gzip - Fișier comprimat cu gzip
  • BZIP - Fișier comprimat folosind bzip2
  • Tape ARchive (TAR) , fișier arhivă Unix , nu (în sine) comprimat
  • TAR.Z, TAR.GZ sau TAR.BZ2 - Unix arhivează fișiere comprimate cu Compress, GZIP sau BZIP2

Analiza formatului poate implica metode de îmbunătățire a calității pentru a evita includerea „informațiilor proaste” în index. Conținutul poate manipula informațiile de formatare pentru a include conținut suplimentar. Exemple de abuz de formatare a documentelor pentru spamdexing :

  • Includerea a sute sau mii de cuvinte într-o secțiune care este ascunsă vizualizării pe ecranul computerului, dar vizibilă pentru indexer, prin utilizarea formatării (de exemplu, eticheta „div” ascunsă în HTML , care poate include utilizarea CSS sau JavaScript pentru a face asa de).
  • Setarea culorii fontului de prim-plan a cuvintelor la aceeași cu culoarea de fundal, făcând cuvintele ascunse pe ecranul computerului pentru o persoană care vizualizează documentul, dar nu ascunse indexatorului.

Recunoașterea secțiunii

Unele motoare de căutare încorporează recunoașterea secțiunilor, identificarea părților majore ale unui document, înainte de tokenizare. Nu toate documentele dintr-un corpus citesc ca o carte bine scrisă, împărțită în capitole și pagini organizate. Multe documente de pe web , cum ar fi buletine informative și rapoarte corporative, conțin conținut eronat și secțiuni laterale care nu conțin material primar (despre care este vorba în document). De exemplu, acest articol afișează un meniu lateral cu linkuri către alte pagini web. Unele formate de fișiere, cum ar fi HTML sau PDF, permit afișarea conținutului în coloane. Chiar dacă conținutul este afișat sau redat în diferite zone ale vizualizării, conținutul brut de marcare poate stoca aceste informații secvențial. Cuvintele care apar secvențial în conținutul sursei brute sunt indexate secvențial, chiar dacă aceste propoziții și paragrafe sunt redate în diferite părți ale ecranului computerului. Dacă motoarele de căutare indexează acest conținut ca și cum ar fi un conținut normal, calitatea indexului și calitatea căutării pot fi degradate din cauza conținutului mixt și a apropierii necorespunzătoare a cuvintelor. Se remarcă două probleme principale:

  • Conținutul din diferite secțiuni este tratat ca fiind asociat în index, atunci când în realitate nu este
  • Conținutul „barei laterale” organizaționale este inclus în index, dar conținutul barei laterale nu contribuie la semnificația documentului, iar indexul este umplut cu o reprezentare slabă a documentelor sale.

Analiza secțiunii poate necesita ca motorul de căutare să implementeze logica de redare a fiecărui document, în esență o reprezentare abstractă a documentului propriu-zis, iar apoi să indexeze reprezentarea. De exemplu, un anumit conținut de pe Internet este redat prin JavaScript. Dacă motorul de căutare nu redă pagina și nu evaluează JavaScript în cadrul paginii, nu ar „vedea” acest conținut în același mod și ar indexa documentul în mod incorect. Având în vedere că unele motoare de căutare nu se deranjează cu problemele de redare, mulți designeri de pagini web evită afișarea de conținut prin JavaScript sau folosesc eticheta Noscript pentru a se asigura că pagina web este indexată corect. În același timp, acest fapt poate fi exploatat și pentru a determina indexatorul motorului de căutare să „vadă” conținut diferit de cel al vizualizatorului.

Sistem de prioritate HTML

Indexarea trebuie adesea să recunoască etichetele HTML pentru a organiza prioritatea. Indexarea priorității reduse la marja ridicată a etichetelor, cum ar fi puternică și a legăturii pentru a optimiza ordinea de prioritate, dacă aceste etichete sunt la începutul textului, nu s-ar putea dovedi a fi relevante. Unii indexatori precum Google și Bing se asigură că motorul de căutare nu ia textele mari ca sursă relevantă datorită compatibilității puternice a sistemului .

Indexarea metaetichetelor

Documentele specifice conțin adesea meta informații încorporate, cum ar fi autorul, cuvintele cheie, descrierea și limba. Pentru paginile HTML, metaeticheta conține cuvinte cheie care sunt, de asemenea, incluse în index. Tehnologia anterioară a motoarelor de căutare pe internet ar indexa doar cuvintele cheie din metaetichetele pentru indexul direct; documentul complet nu ar fi analizat. La acea vreme indexarea full-text nu era la fel de bine stabilită și nici hardware-ul computerului nu era capabil să susțină o astfel de tehnologie. Proiectarea limbajului de marcare HTML a inclus inițial suport pentru metaetichete în scopul de a fi corect și ușor indexat, fără a necesita tokenizare.

Pe măsură ce internetul a crescut prin anii 1990, multe corporații din cărămidă au intrat „online” și au stabilit site-uri web corporative. Cuvintele cheie utilizate pentru descrierea paginilor web (dintre care multe au fost pagini web orientate către companii, asemănătoare cu broșurile de produse) s-au schimbat de la cuvinte cheie descriptive la orientate spre marketing, concepute pentru a stimula vânzările, plasând pagina web în rezultatele căutării pentru interogări de căutare specifice. Faptul că aceste cuvinte cheie au fost specificate subiectiv a dus la spamdexing , ceea ce a determinat multe motoare de căutare să adopte tehnologii de indexare full-text în anii '90. Proiectanții și companiile de motoare de căutare ar putea plasa atât de multe „cuvinte cheie de marketing” în conținutul unei pagini web înainte de a le scurge de toate informațiile interesante și utile. Având în vedere conflictul de interese cu scopul afacerii de a proiecta site-uri web orientate către utilizator, care erau „lipicioase”, ecuația valorii pe viață a clienților a fost modificată pentru a încorpora conținut mai util în site-ul web în speranța de a reține vizitatorul. În acest sens, indexarea textului complet a fost mai obiectivă și a sporit calitatea rezultatelor motoarelor de căutare, deoarece se afla la încă un pas de controlul subiectiv al plasării rezultatelor motorului de căutare, ceea ce, la rândul său, a continuat cercetarea tehnologiilor de indexare a textului complet.

În căutarea pe desktop , multe soluții încorporează metaetichete pentru a oferi autorilor o modalitate de a personaliza în continuare modul în care motorul de căutare va indexa conținutul din diferite fișiere care nu este evident din conținutul fișierului. Căutarea pe desktop este mai mult sub controlul utilizatorului, în timp ce motoarele de căutare pe Internet trebuie să se concentreze mai mult pe indexul textului integral.

Vezi si

Referințe

Lecturi suplimentare

  • R. Bayer și E. McCreight. Organizarea și întreținerea unor indici mari ordonați. Acta Informatica, 173-189, 1972.
  • Donald E. Knuth . The Art of Computer Programming , volumul 1 (ediția a 3-a): algoritmi fundamentali, Addison Wesley Longman Publishing Co. Redwood City, CA, 1997.
  • Donald E. Knuth . Arta programării computerizate, volumul 3: (ediția a doua) sortare și căutare, Addison Wesley Longman Publishing Co. Redwood City, CA, 1998.
  • Gerald Salton . Prelucrarea automată a textului, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1988.
  • Gerard Salton . Michael J. McGill, Introducere în recuperarea informațiilor moderne, McGraw-Hill, Inc., New York, NY, 1986.
  • Gerard Salton . Lesk, ME: Evaluarea computerizată a indexării și procesării textului. Jurnalul ACM. Ianuarie 1968.
  • Gerard Salton . Sistemul SMART Retrieval - Experimente în procesarea automată a documentelor. Prentice Hall Inc., Cliffs Englewood, 1971.
  • Gerard Salton . Transformarea, analiza și recuperarea informațiilor prin computer, Addison-Wesley, Reading, Mass., 1989.
  • Baeza-Yates, R., Ribeiro-Neto, B .: Modern Information Retrieval. Capitolul 8. ACM Press 1999.
  • GK Zipf. Comportamentul uman și principiul minimului efort. Addison-Wesley, 1949.
  • Adelson-Velskii, GM, Landis, EM: Un algoritm de organizare a informațiilor. DANSSSR, 146, 263-266 (1962).
  • Edward H. Sussenguth Jr. , Utilizarea structurilor de copac pentru procesarea fișierelor, Comunicări ale ACM, v.6 n.5, p. 272-279, mai 1963
  • Harman, DK și colab.: Fișiere inversate. În recuperarea informațiilor: structuri și algoritmi de date, Prentice-Hall, pp. 28–43, 1992.
  • Lim, L., și colab.: Caracterizarea modificării documentelor web, LNCS 2118, 133-146, 2001.
  • Lim, L., și colab.: Întreținerea dinamică a indexurilor web utilizând repere. Proc. a celei de-a 12-a conferințe W3, 2003.
  • Moffat, A., Zobel, J .: Auto-indexarea fișierelor inversate pentru recuperarea rapidă a textului. ACM TIS, 349–379, octombrie 1996, volumul 14, numărul 4.
  • Mehlhorn, K .: Structuri de date și algoritmi eficienți, Springer Verlag, Monografii EATCS, 1984.
  • Mehlhorn, K. , Overmars, MH : Dinamizarea optimă a problemelor de căutare descompozabile. IPL 12, 93–98, 1981.
  • Mehlhorn, K .: Limite inferioare privind eficiența transformării structurilor de date statice în structuri de date dinamice. Matematica. Teoria sistemelor 15, 1-16, 1981.
  • Koster, M .: ALIWEB: indexare Archie-Like pe Web. Rețele de calculatoare și sisteme ISDN, Vol. 27, nr. 2 (1994) 175-182 (vezi și Proc. First Int'l World Wide Web Conf., Elsevier Science, Amsterdam, 1994, pp. 175-182)
  • Serge Abiteboul și Victor Vianu . Interogări și calcule pe web . Lucrările Conferinței internaționale privind teoria bazelor de date. Delphi, Grecia 1997.
  • Ian H Witten, Alistair Moffat și Timothy C. Bell. Gestionarea gigabyților: comprimarea și indexarea documentelor și imaginilor. New York: Van Nostrand Reinhold, 1994.
  • A. Emtage și P. Deutsch, "Archie - Un serviciu de director electronic pentru internet." Proc. Usenix Winter 1992 Tech. Conf., Conf. Usenix, Berkeley, California, 1992, pp. 93-110.
  • M. Gray, Wanderer World Wide Web .
  • D. Cutting și J. Pedersen. „Optimizări pentru întreținerea dinamică a indexului inversat”. Lucrările celei de-a 13-a Conferințe internaționale privind cercetarea și dezvoltarea în recuperarea informațiilor, pp. 405–411, septembrie 1990.
  • Stefan Büttcher, Charles LA Clarke și Gordon V. Cormack. Recuperarea informațiilor: implementarea și evaluarea motoarelor de căutare . MIT Press, Cambridge, Mass., 2010.