Comparația motoarelor de căutare full-text. Caz: învățarea motorului de căutare să recunoască erorile gramaticale

Când un lucrător Netpikov se confruntă cu o sarcină care necesită timp (de exemplu, crearea unui proiect Steaua Morții sau construirea unui dispozitiv compact de fuziune la rece), el se gândește în primul rând la modul de automatizare a acestei lucrări. Colectăm rezultatele unor astfel de reflecții pe o pagină specială a site-ului nostru. Astăzi vom vorbi despre cum se naște un nou serviciu util în adâncul agenției Netpeak.

Cu mult timp în urmă, într-o galaxie foarte, departe, am decis să ne schimbăm motor de căutare site-ul clientului pentru a crește vizibilitatea paginilor în căutarea obișnuită.

Sarcină

A creat motorul de căutare al proiectului client cu care a trebuit să lucrăm pagină separată pentru fiecare cerere. Deoarece interogările conțin uneori greșeli de scriere, s-a acumulat un întreg munte de astfel de pagini – atât corecte, cât și cu erori. În general - mai mult de două milioane de pagini: în mod egal pentru rusă și engleză. Paginile cu erori au fost indexate și au înfundat rezultatele.

Sarcina noastră a fost să ne asigurăm că toate opțiunile de interogare - atât corecte, cât și cu erori - au condus la o singură pagină. De exemplu, fiecare dintre interogările baseball, basaball, baaeball, baselball avea propriile pagini, dar era necesar să ne asigurăm că toate opțiunile convergeau într-o singură pagină cu interogarea corectă - baseball. În acest caz, pagina va corespunde formei corecte a cererii și vom putea scăpa de gunoiul din rezultatele căutării.

Exemple de grupuri:

Este demn de remarcat faptul că agențiile nu au întotdeauna încredere în implementarea modificărilor în motorul site-ului web. Prin urmare, suntem recunoscători clientului nostru pentru oportunitatea de a implementa acest proiect.

Ţintă

Creați un mecanism de lucru clar pentru plasarea redirecționărilor de la pagini pentru fraze cu erori către o pagină de pe site-ul client cu fraza corectă.

Acest lucru este necesar atât pentru a îmbunătăți accesarea cu crawlere și indexarea paginilor de destinație de către un motor de căutare, cât și pentru a construi un nucleu semantic și a-l utiliza atunci când se dezvoltă o nouă structură a site-ului. Desigur, nu știam numărul total de limbi în care au fost introduse interogări, dar cea mai mare parte a frazelor erau în rusă și engleză, așa că ne-am concentrat pe aceste limbi.

Cum s-a născut o nouă metodă

Cea mai simplă soluție care îmi vine imediat în minte este să introduceți interogări în Google și o va corecta sincer pentru noi. Dar organizarea unei astfel de pătrunderi este o întreprindere destul de costisitoare. Prin urmare, tovarășii mei și cu mine am luat un alt drum. Matematicianul nostru analitic a decis să folosească o abordare lingvistică (din senin!) și să construiască un model lingvistic.

Ce înseamnă? Determinăm probabilitatea de a întâlni un cuvânt într-o limbă și pentru fiecare cuvânt găsim probabilitățile de a face diferite greșeli în el. Totul ar fi în regulă, iar teoria de aici este frumoasă, dar pentru a colecta astfel de statistici trebuie să aveți un corpus mare de text marcat pentru fiecare limbă (din nou, motoarele de căutare se apropie cel mai mult de acest lucru). Desigur, au apărut întrebări despre cum să faceți acest lucru și cine va implementa toate acestea în cod. Nimeni nu mai făcuse așa ceva înainte (dacă cunoașteți un caz, postați linkul în comentarii), așa că metodologia a fost dezvoltată de la zero. Au fost mai multe idei și nu era evident dinainte care dintre ele era mai bună. Prin urmare, ne așteptam ca dezvoltarea să se desfășoare ciclic - pregătirea unei idei, implementarea, testarea, evaluarea calității și apoi deciderea dacă să continuăm să rafinăm ideea sau nu.

Implementarea tehnologiei poate fi împărțită în trei etape. Citiți mai multe despre fiecare dintre ele.

Etapa nr. 1. Formarea problemei. Prima grebla

Atenţie! După această linie vor fi mulți termeni pe care am încercat să-i explicăm într-un limbaj cât mai simplu posibil.

Deoarece informații suplimentare (dicționare, frecvențe, jurnale) nu sunt disponibile, au existat încercări de a rezolva problema cu resursele pe care le aveam. Am încercat diferite metode de grupare. Ideea principală este că cuvintele din același grup nu ar trebui să difere prea mult.

Clustering- o procedură care colectează date care conțin informații despre un eșantion de obiecte și apoi aranjează obiectele în grupuri relativ omogene.

Distanța Levenshtein arată numărul minim de modificări (ștergeri, inserări și înlocuiri) în rândul A care trebuie făcute pentru a obține rândul B.

  • Înlocuire simbol: sh[e]res — sh[i]res, sh[o]res;
  • Inserarea unui simbol: sheres - s[p]heres;
  • Îndepărtare: gold[d][f] - golf, gold.

În fiecare dintre exemple, distanța dintre cuvântul scris greșit și forma corectă este de 1 corecție.

Coeficientul Jaccard pe bi- și trigrame ajută la aflarea câte combinații comune de silabe cu două sau trei caractere au șirurile A și B.

Exemplu: să luăm în considerare liniile A = snowboard și B = chenar. Formula generala Coeficientul pentru bigrame are forma:

J = (numărul de bigrame identice pentru A și B) / (numărul total de bigrame în A și B)

Să împărțim liniile în bigrame:

bigrame pentru A = ( sn, no, ow, wb, bo+, oa, ar, rd+ ) - 8 bucăți; bigrame pentru B = ( bo+, or, rd+, de, er ) - 5 bucăți; Există două bigrame identice marcate cu semne plus - bo și rd.

Pentru trigrame va fi similar, doar în loc de două litere se vor folosi trei. Coeficientul Jaccard pentru ei va fi astfel:

Exemplu de cuvinte mai asemănătoare:

A = baseball și B = baaeball ( ba+, as, se, eb+, ba+, al+, ll+ ) ( ba+, aa, ae, eb+, ba+, al+, ll+ ) J = 5 / (7 + 7 - 5) = 0,56

Deși coeficientul Jaccard funcționează mai repede, nu ține cont de ordinea silabelor dintr-un cuvânt. Prin urmare, a fost folosit în principal pentru comparație cu distanța Levenshtein. În teorie, totul era simplu aici. Tehnicile de grupare pentru date mici sunt destul de ușor de rezolvat, dar în practică s-a dovedit că pentru a finaliza defalcarea este nevoie fie de putere de calcul uriașă, fie de ani de timp (și, în mod ideal, de ambele). În două săptămâni de muncă, un scenariu a fost scris în Python. Când este lansat, citește fraze dintr-un fișier și liste de grupuri de ieșire într-un alt fișier. În același timp, ca orice program, acest script a încărcat procesorul și a folosit RAM.

Cele mai multe dintre metodele testate au necesitat terabytes de memorie și săptămâni de timp CPU. Am adaptat metodele astfel încât programul să aibă nevoie de 2 gigaocteți de memorie și un nucleu. Cu toate acestea, un milion de cereri au fost procesate în aproximativ 4-5 zile. Deci, timpul de finalizare a sarcinii a lăsat încă mult de dorit. Rezultatul algoritmului poate fi prezentat sub forma unui grafic folosind un mic exemplu:

Când este aplicat unui proiect client, aceasta înseamnă că paginile care se potrivesc cu solicitările din același cluster vor fi lipite împreună cu o redirecționare 301. Să ne amintim că scopul nostru a fost să creăm un mecanism clar de lucru pentru plasarea redirecționărilor de la paginile pentru fraze cu erori către o pagină a site-ului client cu fraza corectă. Dar chiar și cu acest exemplu, deficiențele sunt evidente:

  1. Nu este clar cum să găsești din grupuri forme corecteși dacă sunt acolo deloc.
  2. Nu se știe ce praguri de eroare să folosiți. Dacă există un prag mare (mai mult de 3 erori), atunci grupurile vor fi foarte mari și pline de gunoi dacă este prea mic, atunci fiecare cuvânt își va forma propriul grup, care, de asemenea, nu ni se potrivea. Este imposibil să găsim un sens universal acceptabil pentru toate grupurile.
  3. Nu este clar ce să faci cu cuvintele care pot fi clasificate simultan în mai multe grupuri.

Etapa nr. 2. Simplificare. Speranța nouă

Am reproiectat algoritmul, aducându-l mai aproape de corectorii gramaticali mecanici tradiționali. Din fericire, sunt destui. Ca bază a fost aleasă biblioteca Python Enchant. Această bibliotecă are dicționare pentru aproape orice limbă din lume, este destul de simplu de utilizat și puteți obține indicii despre ceea ce trebuie corectat. În etapa anterioară, am învățat multe despre tipurile de interogări și în ce limbi pot fi aceste interogări.

Următoarele dicționare au fost colectate din acces deschis:

  • engleză (Marea Britanie);
  • engleză (SUA);
  • Limba germana;
  • Limba franceza;
  • Italiană;
  • Spaniolă;
  • Rusă;
  • Ucrainean.
  1. Dacă este corect (situat într-unul din dicționare), îl lăsăm așa cum este;
  2. Dacă este incorect, primim o listă de indicii și luăm primul pe care îl întâlnim;
  3. Repunem toate cuvintele la loc într-o frază. Dacă nu am întâlnit o astfel de expresie înainte, atunci creăm un grup pentru ea. Forma corectată a frazei devine „centrul” acesteia. Dacă avem, înseamnă că această frază are deja propriul grup și adăugăm acolo o nouă formă eronată.

Drept urmare, am primit centrul grupului și o listă de cuvinte din acest grup. Aici, desigur, totul este mai bine decât prima dată, dar a apărut o amenințare ascunsă. Datorită specificului proiectului, există o mulțime de nume proprii în interogări. Există nume și prenume de oameni, orașe, organizații, zone geografice și chiar nume latine ale dinozaurilor. În plus, am găsit cuvinte cu transliterare incorectă. Așa că am continuat să căutăm modalități de a rezolva problema.

Etapa nr. 3. Suplimente și The Force Awakens

Problema transliterației a fost rezolvată destul de simplu și tradițional. În primul rând, am făcut un dicționar de corespondență între literele chirilice și latine.

În conformitate cu aceasta, fiecare literă din cuvintele verificate a fost transformată și s-a notat dacă a existat o corecție de dicționar pentru cuvântul rezultat. Dacă opțiunea de transliterare a avut cele mai puține erori, atunci am selectat-o ​​ca fiind corectă. Dar numele propriu-zise sunt un pic o nucă de spart. Cea mai ușoară opțiune de a completa dicționarele s-a dovedit a fi colectarea cuvintelor din depozitele Wikipedia. Cu toate acestea, Wiki are și al său puncte slabe. Există destul de multe cuvinte scrise greșit acolo, iar metoda de filtrare a acestora nu este încă ideală. Am compilat o bază de date cu cuvinte care încep cu litere mari, și fără semne de punctuație înaintea lor. Aceste cuvinte au devenit candidații noștri pentru nume proprii. De exemplu, după procesarea unui astfel de text, cuvintele subliniate au fost adăugate în dicționar:

La implementarea algoritmului, s-a dovedit că căutarea indiciilor în dicționarul augmentat al lui Enchant necesita uneori mai mult de 3 secunde pe cuvânt. Pentru a accelera acest proces, a fost folosită una dintre implementările automatului Levenshtein.

Pe scurt, ideea mașinii este că construim o schemă de tranziție folosind dicționarul existent. În același timp, știm dinainte câte corecții în cuvinte vor fi acceptabile pentru noi. Fiecare tranziție înseamnă că facem un fel de transformare asupra literelor din cuvânt - lăsăm litera sau aplicăm unul dintre tipurile de corecție - ștergere, înlocuire sau inserare. Și fiecare vârf este una dintre opțiunile de schimbare a cuvântului.

Acum să presupunem că avem un cuvânt pe care vrem să-l verificăm. Dacă există o eroare în ea, trebuie să găsim toate formele de corecție care ni se potrivesc. În mod constant, începem să ne mișcăm conform schemei, parcurgând literele cuvântului care se verifică. Când literele se epuizează, ne vom găsi la unul sau mai multe vârfuri și ne vor arăta opțiunile pentru cuvintele corecte.

Imaginea arată o mașină pentru cuvântul mâncare cu toate cele două erori posibile. Săgeata sus înseamnă inserarea unui caracter în poziția curentă. O săgeată în diagonală cu un asterisc înseamnă înlocuire, o săgeată cu un epsilon înseamnă ștergere, iar o săgeată orizontală înseamnă că litera rămâne neschimbată. Să avem cuvântul fxood. Va corespunde căii din mașină 00-10-11-21-31-41 - ceea ce este echivalent cu inserarea literei x după f în cuvântul mâncare.

În plus, am efectuat lucrări suplimentare pentru a extinde dicționarele principale colectate, a filtra în prealabil expresiile non-dicționare (nume de modele de produse și diverși identificatori), am introdus transliterarea și căutarea într-un dicționar suplimentar.

Care este rezultatul?

Încă lucrăm la modernizarea algoritmului, dar deja în acest stadiu de dezvoltare avem un instrument care poate fi folosit pentru a curăța gunoiul, cum ar fi norii de etichete, și pentru a îmbina redirecționările 301. pagini inutile. Un astfel de instrument va fi deosebit de eficient pentru un număr mic de cuvinte greșite, dar și pentru suprafețe mari arată rezultate destul de satisfăcătoare. O versiune intermediară a scriptului a fost trimisă clientului pentru a forma un bloc de legătură. Acest bloc vă va permite să colectați informații suplimentare despre corecțiile interogărilor. Nu am trimis rezultatele complete ale scriptului pentru implementare, deoarece încă lucrăm la îmbunătățirea calității scriptului.

Crearea codului și testarea acestuia a durat un total de 40 de ore de muncă de către un matematician-analist. Concluzie: dacă într-o zi trebuie să procesați aproximativ două milioane de cereri, nu disperați. Astfel de sarcini pot fi automatizate. Este clar că obținerea unei acuratețe de 100% va fi foarte dificilă, dar este posibil să procesezi corect cel puțin 95% din informații.

De la bun început camere digitale Cu siguranță nu avem lipsă de fotografii. De fapt, Yahoo! estimează că în 2014 vom primi 880 de milioane de fotografii digitale.

Nu am avut niciodată lipsă de fotografii - dimpotrivă, este mult mai dificil să găsim exact imaginea de care avem nevoie în acest ocean vast.

Desigur, acest lucru poate depinde de tipul de imagine pe care o căutați. Dacă cauți ceva care este adesea fotografiat, cum ar fi computere, cărți sau flori, nu va trebui să cauți mult timp, există zeci de fotografii bune la dispoziția ta.

În același timp, încercați să cereți un obiect mai puțin obișnuit sau, de exemplu, un concept abstract - poate o zi însorită sau un anumit tip de floare. Acest lucru se poate dovedi a fi mult mai dificil. O parte din dificultate vine din faptul că, chiar dacă există o imagine perfectă, aceasta nu poate fi etichetată în așa fel încât să poată fi găsită.

În aceste cazuri, puteți petrece mult timp căutând diferite site-uri pentru imagini gratuite și, totuși, nu ajungeți la nimic. Oh. Acest lucru explică de ce atât de multe depozite comerciale sunt promovate pe site-uri de imagini gratuite - facilitățile lor de căutare merită adesea plătite pentru publicitate.

Deci, pentru a evita acest lucru, puteți încerca un serviciu de căutare imagini gratuite.

Motoare de căutare de imagini gratuite

Avantajul acestor motoare de căutare de imagini gratuite este că ele (teoretic) caută mai multe site-uri de imagini gratuite în același timp. Cu toate acestea, în practică există unele probleme când de fapt există doar o mână de site-uri localizate, mai degrabă decât zeci. Oricum, este mai mult decât nimic, dar dacă speri că aceste servicii de căutare de imagini sunt atotputernice, te-aș sfătui să ai o viziune mai realistă asupra lucrurilor.

Este destul de dificil să compari calitatea celor 7 motoare de căutare despre care voi discuta în acest articol. În primul rând, am vrut să rulez aceleași interogări în fiecare dintre ele și să compar rezultatele.

Cu toate acestea, după ce am încercat niște termeni foarte populari (în special „calculatoare”) și am primit mii de rezultate în unele sisteme, în timp ce în altele, mai puțin populare, nu am primit nimic în același timp ( poate pentru că am folosit cuvinte cheie greșite), am decis că un astfel de test ar putea da rezultate eronate.

Mai mult, aceste motoare de căutare indexează imagini noi în fiecare zi, așa că, chiar dacă astăzi nu există o singură imagine în vreun sistem pentru interogarea „zi însorită”, mâine se poate întâmpla ca sistemul să adauge zeci de astfel de imagini.

Astfel, nu voi compara calitatea căutării acestor 7 servicii - pur și simplu îmi voi da impresiile de a lucra cu ele, precum și unele fapte generale, cum ar fi numărul de fotografii pe care le includ în căutări sau numărul de site-uri pe care le indexează.

Înainte de a intra în revizuirea motorului de căutare în sine, un mic sfat. Chiar dacă căutarea returnează imagini marcate ca gratuite pentru uz comercial, verificați întotdeauna site-ul original în sine pentru a verifica cea mai recentă licență.

Este posibil ca imaginile care au fost odată licențiate ca gratuite și-au schimbat ulterior licența deoarece autorul lor s-a răzgândit. Prin urmare, verificați întotdeauna licența înainte de a utiliza o imagine.

1. Google Images

Pentru mulți dintre noi, Google Images este primul ( și adesea singurul) alegerea de a căuta imagini fără drepturi de autor care sunt, de asemenea, aprobate pentru utilizare comercială. Pentru a căuta imagini gratuite prin Google Images, introduceți cuvinte cheie în câmpul de căutare și apăsați Enter, apoi selectați fila Imagini (1):

imagini Google

Apoi faceți clic pe butonul Instrumente de căutare" (2) pentru a deschide lista de opțiuni de căutare și selectați " Drepturi de utilizare„(3). Din meniul derulant, selectați licența care vi se potrivește.

Alegerea de căutare de către Google este în general bună. Pentru termeni cu adevărat populari, veți găsi un număr mare de imagini. Din fericire, ele oferă adesea subrezultate. De exemplu, pentru computere, acestea oferă categorii precum Apple , Laptop-uri, Imagini, Imagini de fundal, Piese, PNG-uri etc. pentru a vă rafina căutarea.

Pentru termeni mai puțin populari și drepturi de utilizare mai puțin restrictive, alegerea nu este la fel de largă. De foarte multe ori nu vei găsi nimic potrivit, mai ales dacă cauți material gratuit reutilizare cu sau fără capacitatea de a face modificări. În acest caz, ar trebui să încercați un alt serviciu de căutare de imagini, dintre care unul îl voi descrie mai jos. Nu ia mult timp.

2. Căutare CC

Căutare CC, ( prescurtare pentru Creative Commons Search), este un alt motor de căutare major pentru imagini licențiate sub licențe Creative Commons.

Deși, după cum susțin ei înșiși, nu este din punct de vedere tehnic un motor de căutare, ei oferă în mod clar rezultate de căutare pe alte câteva site-uri, cum ar fi Europeans, Flickr, Google Images, Wikimedia Commons, Fotopedia, Open Clipart Gallery, Pixabay:


Problema este că CC Search nu caută toate aceste site-uri simultan. În schimb, intri interogare de căutareși alegeți locul în care doriți să căutați. Nu este foarte convenabil, dar este totuși mai rapid decât căutarea direct pe toate aceste site-uri.

Pe lângă imagini, CC Search oferă rezultate pentru muzică, videoclipuri și alte media.

Puteți specifica ceea ce căutați: fie material care este gratuit pentru uz comercial, fie lucruri pe care le puteți modifica, adapta și utiliza ca bază, sau ambele.

Dacă ți-a plăcut CC Search și intenționezi să-l folosești în mod regulat, acestea oferă un supliment de browser ( De macar, pentru Firefox), care ajută la accelerarea accesului la site.

Rețineți că Creative Commons nu înseamnă " gratuit pentru toată lumea" Trebuie să înțelegeți că utilizarea acestei licențe este supusă tuturor legăturilor, acreditării și altor termeni și condiții.

3.Pin foto

Flickr este poate cel mai mare depozit de imagini gratuite de pe Internet, așa că nu este surprinzător faptul că mai multe servicii de căutare de imagini se concentrează exclusiv pe el. Photo Pin este unul dintre ele. Când deschideți site-ul și introduceți o interogare, vedeți ceva de genul acesta:


În partea stângă puteți selecta tipul de licență de care aveți nevoie ( de exemplu, comercial sau non-profit), și, de asemenea, cum să sortați rezultatele ( nou în primul rând, relevanță, interesant).

Desigur, nu există niciun motiv pentru care să nu căutați conținut Creative Commons direct pe Flickr prin căutarea avansată. Cu toate acestea, Photo Pin vă oferă două avantaje.

În primul rând, este mai ușor dacă te concentrezi doar pe conținutul licențiat. În al doilea rând, Photo Pin permite încărcarea ușoară în mărimea potrivităși oferă, de asemenea simpla oportunitate copiați și lipiți link-uri de licență.

Serviciu cu adevărat convenabil.

4.PicFindr

Spre deosebire de multe alte servicii care se numesc „motoare de căutare”, chiar dacă caută doar Flickr, PicFindr este mai ambițios. Acesta caută peste zece site-uri de imagini gratuite într-o gamă largă de licențe ( Creative Commons, GNU și altele).

Lista de site-uri include subsecțiuni gratuite ale unor site-uri de imagini, cum ar fi DreamsTime, ceea ce face ca acest motor de căutare să fie deosebit de util. Când introduceți un termen de căutare, veți vedea ceva de genul acesta:


În plus, PicFindr are câteva opțiuni de căutare suplimentare care îl fac și mai util:


Unele dintre site-urile incluse în căutare nu sunt foarte cunoscute, în timp ce unele dintre site-urile populare lipsesc din anumite motive, dar în general este un motor de căutare foarte bun.

5. Veezzle

Dacă sunteți gata să încercați un alt motor de căutare care caută atât Flickr, cât și Wikimedia Commons, consultați Veezzle. Când vizitați un site și introduceți un termen de căutare, îl puteți face mai specific, așa cum se arată în următoarea captură de ecran:


Când faceți clic pe butonul Căutare, rezultatele din Flickr și Wikimedia Commons sunt afișate separat. Puteți alege cum doriți să afișați rezultatele - după relevanță, popularitate sau după data încărcării.

Deși Veezzle este un alt motor de căutare care funcționează cu Flickr, nu respinge această opțiune înainte de a o încerca în acțiune. Flickr este atât de uriaș și divers încât diferite motoare de căutare vă pot oferi rezultate diferite. Deci, s-ar putea să găsiți imaginile potrivite pentru dvs. cu Veezzle.

6. Fiecare fotografie de stoc

Cu aproape 23 de milioane din care să alegi fotografii gratuite Fiecare fotografie de stoc este un loc cu adevărat grozav de căutare. Acest serviciu caută mai multe site-uri. Pe lângă Flickr și Wikimedia Commons, care sunt acoperite în alte motoare de căutare, Every Stock Photo caută în alte locuri: MorgueFile, SXU, NASA și Photo:


Opțiunile avansate vă permit să vă optimizați căutarea. Acestea vă permit să alegeți tipul de licență, sursa și ce să afișați ( permisiunea, licența, sursa). Pentru mine personal, Every Stock Photo este al doilea motor de căutare a imaginilor preferat după Google Images. Dar, deoarece fiecare are gusturi diferite, nu este neapărat potrivit pentru alții:


7.Iată

Este foarte posibil ca motoarele de căutare deja enumerate să fie mai mult decât suficiente pentru tine, dar iată-l pe ultimul. În comparație cu alte motoare de căutare, Behold pare să fie vărul sărac, deoarece afișează doar rezultate de pe Flickr. Cu toate acestea, spre deosebire de aceleași motoare de căutare, Behold este foarte, foarte rapid, ceea ce reprezintă un avantaj enorm.

Ivan Maksimov

Capacitățile motorului de căutare DataparkSearch

Cum se organizează o căutare de informații pe un server de fișiere nu numai după numele și tipul documentului, ci și după conținutul acestuia? Este posibil să se creeze un instrument adecvat, accesibil și transparent pentru utilizatori?

În prezent, problema căutării de informații devine din ce în ce mai relevantă. Pe Internet, a existat de multă vreme concurență între motoarele de căutare, oferind constant noi servicii, capabilități și mecanisme avansate de căutare. Dar datele necesare sunt greu de găsit nu numai pe Internet. O cantitate imensă se acumulează și pe computerele de acasă ale utilizatorilor, iar înțelegerea acestei varietăți este uneori foarte dificilă. În organizații, informațiile sunt cel mai adesea centralizate și sortate pe servere de fișiere, dar în timp, caută documente necesare i se pare greu. Producătorii de software au răspuns acestei nevoi. Astăzi există zeci de motoare de căutare care funcționează local pe un PC și au apărut și motoarele de căutare bazate pe server.

Motoarele de căutare locale sunt în mare parte distribuite gratuit, în timp ce versiunile corporative care permit utilizatorilor să caute informații pe un server sunt destul de costisitoare. Fără îndoială, cumpărare produs comercial, primim suport tehnic competent și alte beneficii, dar organizațiile mici sau proprietarii de rețele private nu sunt întotdeauna capabili să plătească mii de dolari pentru astfel de produse. Din fericire, în lumea Open Source există proiecte gratuite, nu sunt inferiori ca funcționalitate față de concurenții lor comerciali, cu asistență și actualizări de înaltă calitate.

Acum vom lua în considerare una dintre opțiunile de organizare a căutării documentelor pe un server de fișiere, care a fost implementată pentru o anumită sarcină.

Condiții inițiale

Există un server de fișiere care rulează sistemul de operare Linux. Pachetele populare samba și pro-ftp sunt instalate pentru partajarea fișierelor. Discul utilizează sistemul de fișiere reiserfs, deoarece este cel mai productiv pentru lucrul cu un număr mare de fișiere mici (documente, aproximativ 3 mii, diverse formate: txt, html, doc, xls, rtf). Datele au fost sortate, dar volumul lor crește în fiecare zi, ștergere informații învechite nu rezolva problema. Cum se organizează o căutare după nume și tipuri de documente, precum și după conținut? Cum îl puneți la dispoziție utilizatorilor din rețeaua locală?

Pentru a rezolva aceste probleme avem nevoie de un motor de căutare, un server de baze de date (MySQL, firebirg, ...), server web Apacheși aproximativ un gigaoctet spatiu pe disc pentru funcționarea complexului.

Ce motor de căutare ar trebui să alegi?

Există motoare de căutare locale, cum ar fi Google Desktop Search sau Ask Jeeves Desktop Search. Poate că aceste motoare pot fi utile pentru organizarea căutărilor într-o companie mică sau pe o stație de lucru utilizator care rulează sistemul de operare Windows, dar nu în în acest caz,. Căutați „monstri” precum Yandex sunt foarte scumpi, dar dacă aveți nevoie de ajutor de înaltă calitate pentru dezvoltatori, atunci companiile mari ar putea trebui să se gândească la închirierea acestuia. Există mai multe proiecte pentru familia *nix. Acestea sunt motoarele:

  • DataparkSearch
  • Wordindex
  • ASPseek
  • Beagle
  • MnogoSearch

Motoarele listate sunt poziționate ca motoare de căutare distribuite gratuit pentru a lucra în local și/sau rețele globale. Aș dori să remarc faptul că multe proiecte nu sunt multiplatformă și nu funcționează sub sisteme de operare Microsoft. Pentru sistemele Windows, există soluții de server, cum ar fi: MnogoSearch și „Snoop”.

Deci, să ne uităm pe scurt la motoarele de căutare pentru platforma *nix:

Beagle este succesorul motorului SUSE Linux Htdig. Ultima distribuție SUSE care a inclus motorul Htdig a fost numărul 9 în versiunile ulterioare, Novell l-a înlocuit cu Beagle. Htdig și-a încheiat dezvoltarea în 2004, ultima versiune disponibilă este 3.2.0b6 din 31 mai 2004. Noul motor din SUSE este poziționat ca motor de căutare local, dar poate fi folosit și într-un mediu corporativ.

MnogoSearch (fost UdmSearch) este un motor bine-cunoscut și destul de răspândit. Există versiuni atât pentru Windows (versiunea gratuită de 30 de zile) cât și pentru platformele *nix (licență GNU). Este posibil să lucrați cu aproape toate versiunile comune de SGBD SQL pentru ambele platforme. Din păcate, există destul de multe plângeri cu privire la acest motor, așa că nu l-am ales.

Wordindex este un motor în curs de dezvoltare (la momentul scrierii, cea mai recentă versiune disponibilă este 0.5 din 31 august 2000). Funcționează împreună cu SGBD-ul MySQL și serverul web Apache. Un proiect viabil este prezentat doar pe site-ul dezvoltatorilor.

ASPseek este un motor de căutare destul de răspândit în trecut, dar în 2002 acest motor și-a încetat dezvoltarea (cea mai recentă versiune disponibilă a acestui motor de căutare este 1.2.10 din 22 iulie 2002).

DataparkSearch este o clonă a motorului de căutare MnogoSearch. Vă permite să căutați atât după numele fișierelor, cât și după conținutul acestora. Procesarea fișierelor txt, a documentelor HTML și a etichetelor mp3 este încorporată pentru a procesa conținutul altor tipuri de documente. Este posibil să căutați informații atât pe hard disk-ul local, cât și în rețeaua locală/globală (http, https, ftp, nntp și news).

Motorul de căutare funcționează cu cele mai comune SGBD-uri SQL, cum ar fi MySQL, firebird, PostgreSQL și altele. Potrivit dezvoltatorilor, DataparkSearch funcționează stabil pe diferite sisteme de operare *nix: FreeBSD, Solaris, palarie rosie, SUSE Linux și altele. În comparație cu MnogoSearch, unele erori au fost remediate în motor și unele funcții au fost modificate în bine. Site-ul web al dezvoltatorilor oferă link-uri către versiuni funcționale ale motorului de pe Internet. Un mare plus este documentația de înaltă calitate în limba rusă.

Deci, după compararea tuturor argumentelor pro și contra, motorul de căutare DataparkSearch a fost ales pentru a implementa căutarea pe serverul de fișiere.

Instalare

Pentru a funcționa, vom avea nevoie de: un server web Apache, un server de baze de date MySQL și coduri sursă DataparkSearch. Instalați serverul Apache și baza de date MySQL (cu toate bibliotecile necesare). Dacă pe serverul dvs. este instalat un alt DBMS, îl puteți utiliza și pe acesta (consultați documentația motorului). Apoi, să despachetăm arhivele DataparkSearch și să începem asamblarea complexului nostru.

Să rulăm scriptul install.pl și să răspundem la întrebările necesare: selectarea folderului de instalare a motorului, baze de date și altele legate de parametrii de funcționare ai motorului. Se recomandă să părăsiți setările implicite. Utilizatorii experimentați, după citirea documentației aflate în folderul doc, pot configura manual motorul (comanda de configurare). Dacă scriptul nu poate găsi mysql în timpul instalării, este posibil ca bibliotecile dezvoltatorului (libmysql14 devil) să nu fie instalate. Acum vom compila și instala DataparkSearch folosind comenzile make and make install.

Configurație minimă

Să creăm o bază de date:

sh$ mysqladmin creați căutare

Folosind comanda mysqlshow, vom vizualiza toate tabelele din baza de date. Aș dori să notez imediat că este mai convenabil să lucrezi cu MySQL folosind consola web phpmyadmin, dar te poți descurca cu set standard utilitati Trebuie să creați un utilizator nou în MySQL:

sh#mysql --user=rădăcină mysql

mysql> ACORDĂ TOATE PRIVILEGIILE PE *.* CĂTRE user@localhost

IDENTIFICAT PRIN „parolă” CU OPȚIUNEA DE GRANT;

Ieșire

Să repornim MySQL.

Să presupunem că numele de utilizator este searcher și parola este qwerty.

Acum creăm fișierul indexer.conf în folderul /etc/ al motorului. Exemple ale acestui fișier (pentru unele sarcini) pot fi găsite în folderul /doc/samples din codul sursă DataparkSearch. Un exemplu cu setări minime este prezentat în Fig. 1.

Să aruncăm o privire mai atentă la dosar. După cum sa menționat în comentariu, comanda DBAddr specifică calea către serverul SQL (în cazul nostru, MySQL), cum sunt stocate datele și alți parametri (dacă este necesar). Există mai multe moduri de stocare: dacă nu specificați dpmode, valoarea implicită va fi unică - cea mai lentă. Este recomandat să folosiți modul cache, dar dacă aveți probleme cu acesta, puteți utiliza modul multi mai puțin eficient, dar mai ușor de configurat. Descriere detaliata Toți parametrii dbmode sunt în documentație.

DoStore stochează copii comprimate ale documentelor indexate. Secțiuni este un modul care oferă opțiuni flexibile de indexare. Să presupunem că puteți crea o restricție de etichetă sau puteți configura indexarea nu numai a conținutului fișierelor, ci și a adresei URL (gazdă, cale, nume). Langmap - hărți speciale de limbi pentru recunoașterea codificărilor și limbilor, eficiente dacă documentele sunt mai mari de 500 de octeți.

Al doilea fișier de configurare necesar este fișierul cu rezultatele căutării search.conf. Se recomandă să luați un șablon gata făcut (fișier /etc/search.htm-dist) și să îl editați pentru a se potrivi nevoilor dumneavoastră. Trebuie remarcat faptul că parametrii principali specificați în fișierul indexer.conf trebuie să se potrivească cu parametrii din search.htm, altfel vor apărea erori atunci când motorul funcționează. Search.htm este format din mai multe blocuri: primul - variabile - conține date pentru ca motorul să funcționeze (scriptul search.cgi), iar toate celelalte blocuri sunt necesare pentru a genera pagina html cu rezultatele căutării. Un exemplu de bloc de variabile din search.conf este prezentat în Fig. 2.

Să aruncăm o privire mai atentă la search.htm. După cum puteți vedea, parametrii DBAddr și LocalCharset sunt aceiași cu parametrii identici din indexer.conf. Dacă clientul dvs. web acceptă formatul xml, atunci puteți seta parametrul ResultContentType text/xml. Mai jos sunt blocurile HTML necesare pentru a proiecta pagina de rezultate, acestea nu sunt prezentate aici din cauza dimensiunii lor mari; Utilizare recomandată șablon gata făcut, aflat în fișierul /etc/search.htm-dist. Documentația de însoțire descrie pe deplin formatul blocurilor HTML (designul poate fi personalizat după bunul său plac).

Acum puteți rula fișierul de indexare din folderul sbin al motorului DataparkSearch cu parametrul -Ecreate. Dacă totul a fost făcut corect, în baza de date vor fi create tabelele SQL necesare. Dacă apar erori, ar trebui să verificați numele utilizator mysqlși parola în fișierul indexer.conf, aceasta este cea mai frecventă eroare.

Pentru testare, se recomandă indexarea unei mici secțiuni a resursei, astfel încât, dacă apar erori, o nouă reindexare nu va dura mult timp. Indexarea este efectuată de comanda indexer fără parametri, ca urmare, vom obține rezultatele: timpul petrecut, numărul de documente și viteza de lucru;

Să copiem fișierul bin/search.cgi din directorul DataparkSearch în folderul cgi-bin al serverului nostru web și să edităm fișierul index.shtml al serverului nostru web Apache (situat în folderul html), adăugând codul formularului de căutare. :

Acum puteți accesa resursa localhost folosind orice browser disponibil. În forma care apare, introduceți cuvântul de căutare, de exemplu „procesor” (vezi Fig. 3). Ca urmare, ar trebui să primim o pagină cu rezultate de căutare, dacă, desigur, astfel de documente există (vezi Fig. 4). Dacă apare un document cu erori în locul unei pagini cu rezultate de căutare, ar trebui să verificați funcționarea scriptului. Mergând în directorul cgi-bin al serverului web, executați scriptul „seach.cgi test >> test.htm”. Dacă pagina de rezultate este formată corect, ar trebui să verificați configurația serverului Apache: calea către scriptul cgi este specificată corect, este scriptul de testare test.cgi care rulează în directorul serverului web.

Dacă test.htm este gol sau conține și erori, este recomandat să verificați dacă datele există în baza de date, acest lucru se face cu comanda „indexer -S”. Poate că ar trebui să reindexați serverul cu comanda „indexer – v 5” - nivelul maxim pentru emiterea informațiilor de depanare. Setând comanda LogLevel 5 în fișierul search.htm și vizualizând cu atenție jurnalele serverului web, puteți afla cum sunt procesate datele în serverul SQL.

Adăugarea de module suplimentare (parseturi)

Implicit, motorul funcționează doar cu fișiere html și txt, dar este posibil să se instaleze module suplimentare (parseturi) care convertesc alte tipuri de documente în html sau txt (text simplu). Este posibil să lucrați cu xls (Excel), doc (Word), rtf (Word), ppt (Power Point), pdf ( Acrobat Reader) și chiar fișierele rpm (RedHar Package Manager), acestea din urmă vor afișa doar metadate. În cazul nostru, va trebui să procesăm formate de birou. Există mai multe parseturi pentru xls și doc: catdoc convertește documentele în format txt, XLHTML și vwHtml convertesc fișierele în format HTML.

Recomand să folosiți pachetul catdoc, deoarece viteza de conversie în format txt este mult mai rapidă decât conversia în format HTML, iar programul XLHTML a blocat uneori la conversia documentelor. Deși dezvoltatorii au prevăzut această problemăși recomandă setarea parametrului ParserTimeOut 300 în indexer.conf (numărul este indicat în secunde) pentru a evita înghețarea parsetului, dar timpul de indexare va crește apoi și mai mult.

De asemenea, vom avea nevoie de un alt parset - unrtf - pentru a lucra cu fișiere rtf, acesta convertește documentele în cod html sau format text/plain la alegerea utilizatorului;

Să descarcăm și să instalăm pachetele necesare pentru a conecta parsetul, trebuie să adăugați următoarele linii la indexer.conf:

Pentru formatul xls (programul xls2csv este inclus în pachetul catdoc):

Aplicație MIME/vnd.ms-excel text/plain „xls2csv $1”

Aplicație AddType/vnd.ms-excel *.xls *.XLS

Pentru documente doc parametrii arată astfel:

Aplicație MIME/text msword/„catdoc $1” simplu

AddType application/vnd.ms-excel *.doc *.DOC

procesarea documentelor RTF:

AddType text/rtf* *.rtf *.RTF

Aplicație AddType/rtf *.rtf *.RTF

Mime text/rtf* text/html „/usr/local/bin/unrtf --text $1”

Aplicație MIME/rtf text/html „/usr/local/bin/unrtf --text $1”

Merită să ne amintim că unele aplicații Windows creează uneori fișiere cu aceeași extensie în majuscule, așa că haideți să adăugăm aceleași extensii la lista AddType, dar cu nume diferite.

Puteți adăuga orice tip de document pentru indexare, dar motorul va afișa numai link-uri către numele fișierelor.

Să spunem, dacă trebuie să indexați fișierele rpm sau iso și să obțineți metadate de la ele, mai întâi va trebui să găsiți programul adecvat (parset) și să adăugați parametrii necesari la index.conf. Lista tipurilor de documente acceptate poate fi găsită, de exemplu, în fișierul mime.types al serverului Apache. Soluții gata făcute pentru conversia fișierelor sau obținerea de metadate din acestea se găsesc printre setările pachetului Midnight Commander, în fișierul mc.ext.

modul de stocare cache

Există mai multe moduri de a accelera motorul, una dintre ele este utilizarea metodei de stocare a datelor cache. Pentru a funcționa în acest mod, avem nevoie de utilitarele cache și run-splitter, situate în directorul sbin relativ la motor. Dacă ați creat deja o bază de date SQL într-un mod diferit (dpmode), nu uitați să o ștergeți mai întâi și abia apoi să schimbați modul de stocare. Să ștergem baza de date folosind comenzile: „indexer -C” (curățarea tabelelor SQL) și „indexer Edrop” (ștergerea tabelelor). Apoi, creați un fișier cached.conf din fișierul șablon cached.conf-dist situat în folderul etc al motorului nostru. Să nu uităm să modificăm parametrii pentru accesarea bazei de date SQL:

Acum puteți edita fișierele index.conf și search.conf modificând parametrii din ele:

indexer.conf

DBAddr mysql://searcher:qwerty@localhost/search/?dbmode=cache&cached=localhost:7000

căutare.htm

DBAddr mysql://searcher:qwerty/search/?dbmode=cache

Această modificare este în general suficientă, dar dacă doriți să obțineți o flexibilitate și mai mare a motorului, vă recomandăm să vă familiarizați cu parametri suplimentari modul cache și faceți modificările necesare fișierelor de configurare.

cache & 2> cached.out

Daemonul va porni și va scrie informații de depanare în fișierul cached.out. Portul implicit din cache este 7000, dar poate fi schimbat dacă este necesar (în cached.conf).

Să recreăm tabele SQL pentru noul mod de stocare a datelor folosind comanda „indexer -Ecreate” și să indexăm serverul – indexer. După finalizare, rulați comanda:

alerga-splitter -k

Trebuie să spun că aceasta metoda accelerează nu numai viteza de căutare în baza de date, ci și viteza de indexare. Acum putem încerca să căutăm în baza de date dacă totul a fost făcut corect, vom obține rezultate de căutare.

Funcții suplimentare

În configurația de mai sus, au fost utilizate setări minime cu ajutorul celor suplimentare, puteți obține o funcționalitate și o flexibilitate mai mare a motorului, totul depinde de sarcini. Pentru a crește viteza motorului de căutare, puteți utiliza modulul mod_dpsearch pentru serverul Apache. Necesitatea acestui modul apare dacă sunt indexate sute de mii de documente și este necesară creșterea la maximum a turației motorului. Tot în documentație puteți găsi și alte metode de accelerare a motorului, de exemplu: optimizarea bazei de date SQL sau utilizarea memorie virtuala ca cache.

Destul de des este nevoie de a căuta forme gramaticale ale cuvintelor. Să presupunem că avem nevoie de toate formele cuvântului „procesor” (procesoare, procesoare, ...), pentru aceasta putem configura modulele ispell sau aspell. Mai multe detalii despre ele sunt scrise în documentație.

DataparkSearch are capacitatea de a indexa segmente de rețea;

De asemenea, este posibil să împiedicați indexarea anumitor tipuri de fișiere sau foldere specifice de pe servere: Disallow *.avi sau Disallow */cgi-bin/*.

În șabloane fișierele de configurare Puteți găsi descrieri (cu exemple) ale altor parametri utili care ar putea fi necesari pentru implementarea unei sarcini specifice.

concluzii

Motorul de căutare DataparkSearch este un instrument puternic de lucru cu resurse web situate atât în ​​rețeaua locală, cât și în cea globală. Proiectul este în continuă dezvoltare și în curs de finalizare, cel mai recent la momentul scrierii articolului versiune stabilă motor 4.38 (datat 13.03.2006) si instantaneu 4.39 (datat 19.04.2006). Ar trebui să rețin că actualizările la cea mai recentă versiune au loc aproape o dată la două zile.

Nu am luat în considerare problema creării unui serviciu public de căutare pe Internet, dar dacă aveți nevoie de acest lucru, citiți documentația relevantă privind DBMS, serverul web și alte probleme legate de protejarea informațiilor împotriva accesului neautorizat.

Aplicație

Loc de munca

Serverul a fost instalat pe o mașină: AMD Athlon 2500 Barton, 512 MB DDR 3200 (Dual), HDD WD 200 GB SATA (8 MB cache, 7200 rpm). Configurația motorului: Motorul DataparkSearch (v4.38), MySQL DBMS (v4.1.11), serverul web Apache (v1.3.33), fișierele doc, xls, rtf (conversie în text/plain), html, txt sunt indexate. Este utilizat modul de stocare a datelor multiple. Procesarea a aproximativ 2 mii de fișiere aflate pe această mașină (dimensiunea discului ~1 GB) și indexarea conținutului acestora necesită 40 de minute, dimensiunea bazei de date după lucru este de aproximativ 1 GB. Ar trebui să remarc că viteza motorului cu resurse non-locale va depinde de viteza canalului. De asemenea, viteza de indexare depinde de parseturile utilizate. Utilizarea modului de stocare cache îmbunătățește performanța cu aproximativ 15-20%. Browserele web sunt folosite ca software client. Lucrările au fost testate pe: Firefox, Opera, Konqueror, Microsoft Internet Explorerși chiar și Lynx - fără probleme. Întreaga activitate a părții server a motorului poate fi automatizată folosind binecunoscutul demon cron, plasând în el parametrii necesari pentru indexarea datelor.

  • PostgreSQL - http://www.postgresql.org.
  • Apache - http://www.apache.org.
  • Catdoc - http://www.45.free.net.
  • XLHTML – .
  • vwHtml – .
  • unrtf – ftp://ftp.gnu.org/pub/gnu/unrtf.
  • In contact cu

    Pe mii de site-uri FTP anonime. În această varietate, utilizatorilor le-a fost destul de dificil să găsească un program potrivit pentru a-și rezolva problema.

    Mai mult, ei nu știau dinainte dacă instrumentul pe care îl căutau exista. Prin urmare, a trebuit să vedem manual stocările FTP, a căror structură era semnificativ diferită. Această problemă a fost cea care a dus la apariția unuia dintre aspectele cheie ale lumii moderne - căutarea pe Internet.

    Istoria creației

    Se crede că creatorul primului motor de căutare a fost Alan Emtage. În 1989, a lucrat la Universitatea McGill din Montreal, unde s-a mutat din Barbados natal. Una dintre sarcinile sale ca administrator al departamentului de tehnologie a informației a universității a fost să găsească programe pentru studenți și profesori. Pentru a-și ușura munca și a economisi timp, Alan a scris un cod care l-a căutat.

    „În loc să-mi pierd timpul rătăcind pe site-urile FTP și să încerc să-mi dau seama ce era pe ele, am scris scripturi care au făcut-o pentru mine”, spune Alan, „și am făcut-o rapid.”

    <поле>:<необязательный пробел><значение><необязательный пробел>
    Record<поле>ar putea lua două valori: User-agent sau Disallow. User-agent a specificat numele robotului pentru care a fost descrisă politica, iar Disallow a determinat secțiunile cărora le-a fost refuzat accesul.

    De exemplu, un fișier cu astfel de informații interzice tuturor roboților accesul la orice URL cu /cyberworld/map/ sau /tmp/ sau /foo.html:

    # robots.txt pentru http://www.example.com/ User-agent: * Disallow: /cyberworld/map/ # Acesta este un spațiu URL virtual infinit Disallow: /tmp/ # acestea vor dispărea în curând Disallow: /foo. html
    Acest exemplu blochează accesul la /cyberworld/map pentru toți roboții, cu excepția cybermapper:

    # robots.txt pentru http://www.example.com/ User-agent: * Disallow: /cyberworld/map/ # Acesta este un spațiu URL virtual infinit # Cybermapper știe unde să meargă. User-agent: cybermapper Nu permite:
    Acest fișier va „instala” toți roboții care încearcă să acceseze informațiile de pe site:

    # dispare User-agent: * Disallow: /

    Nemuritor Archie

    Creat în urmă cu aproape trei decenii, Archie nu a primit nicio actualizare în tot acest timp. Și a oferit o experiență complet diferită de internet. Dar chiar și astăzi, îl puteți folosi pentru a găsi informațiile de care aveți nevoie. Unul dintre locurile care încă găzduiește motorul de căutare Archie este Universitatea din Varșovia. Adevărat, majoritatea fișierelor găsite de serviciu datează din 2001.


    În ciuda faptului că Archie este un motor de căutare, acesta oferă în continuare mai multe funcții pentru a vă personaliza căutarea. Pe lângă capacitatea de a specifica o bază de date (FTP anonim sau index web polonez), sistemul oferă o gamă de opțiuni pentru interpretarea șirului introdus: ca subșir, ca căutare literală sau expresie uzuala. Aveți chiar și opțiuni pentru selectarea majusculelor și trei opțiuni pentru a modifica modul în care sunt afișate rezultatele: cuvinte cheie, descriere sau link-uri.


    Există, de asemenea, câteva opțiuni de căutare opționale care vă permit să identificați mai precis fișierele de care aveți nevoie. Este posibil să adăugați cuvinte de serviciu SAU și ȘI, să limitați zona de căutare pentru fișiere la o anumită cale sau domeniu (.com, .edu, .org etc.), precum și să setați numărul maxim de rezultate returnate.

    Deși Archie este un motor de căutare foarte vechi, oferă încă o funcționalitate de căutare destul de puternică fișierul dorit. Cu toate acestea, în comparație cu motoarele de căutare moderne, este extrem de primitiv. „Motoarele de căutare” au mers mult înainte - trebuie doar să începeți să introduceți interogarea dorită, iar sistemul oferă deja opțiuni de căutare. Ca să nu mai vorbim de algoritmii de învățare automată utilizați.

    Astăzi învățare automată este una dintre părțile principale ale motoarelor de căutare precum Google sau Yandex. Un exemplu de utilizare a acestei tehnologii ar putea fi clasarea căutării: clasare contextuală, clasare personalizată etc. În acest caz, sistemele Learning to Rank (LTR) sunt foarte des folosite.

    Învățarea automată face, de asemenea, posibilă „înțelegerea” interogărilor introduse de utilizator. Site-ul corectează independent ortografia, prelucrează sinonime, rezolvă probleme de ambiguitate (ce dorea utilizatorul să găsească, informații despre grupul Eagles sau despre vulturi). Motoarele de căutare învață în mod independent să clasifice site-urile după URL - blog, resursă de știri, forum etc., precum și utilizatorii înșiși pentru a crea o căutare personalizată.

    Stră-străbunicul motoarelor de căutare

    Archie a dat naștere motoarelor de căutare precum Google, așa că într-o oarecare măsură poate fi considerat stră-străbunicul motoarelor de căutare. Asta a fost acum aproape treizeci de ani. Astăzi, industria motoarelor de căutare câștigă aproximativ 780 de miliarde de dolari anual.

    Cât despre Alan Amtage, întrebat despre oportunitatea ratată de a se îmbogăți, acesta răspunde cu un grad de modestie. „Bineînțeles că aș vrea să mă îmbogățesc”, spune el. - Cu toate acestea, chiar și cu brevetele eliberate, s-ar putea să nu devin miliardar. Este prea ușor să faci inexactități în descrieri. Uneori, nu cel care a fost primul câștigă, ci cel care devine cel mai bun.”

    Google și alte companii nu au fost primele, dar și-au depășit concurenții, creând o industrie de mai multe miliarde de dolari.

    Clasificare

    După zona de căutare (condițional)

    Local

    Conceput pentru a căuta informații despre orice parte rețea mondială, de exemplu, pe unul sau mai multe site-uri sau printr-o rețea locală.

    Global

    Conceput pentru a căuta informații pe întregul Internet sau pe o parte semnificativă a acestuia. Reprezentanții unor astfel de motoare de căutare sunt motoarele de căutare Google, Yandex etc. Motoarele de căutare caută informații tipuri variate, de exemplu texte, videoclipuri, imagini, obiecte geografice, date personale etc. În acest caz, fișierele cu care poate lucra un motor de căutare pot fi în format text (de exemplu. html, .htm, .txt, .doc, .rtf...) și grafice (.gif, .png, .svg...) sau multimedia (video și sunet). Până acum, cea mai comună este căutarea prin documente text.

    Interogare de căutare

    Informația inițială pentru căutare este interogarea de căutare.

    Funcții

    Motoarele de căutare îndeplinesc mai multe funcții:

    Căutați link-uri

    Căutați link-uri către pagini și alte documente ale site-ului.

    Auto

    Mod manual

    Utilizatorii înșiși adaugă link-uri către paginile site-urilor lor la baza de date a motorului de căutare

    Indexarea documentelor site-ului web

    Extragerea informațiilor relevante pentru căutare din documente, conversia acelor informații într-un format prietenos cu motoarele de căutare și stocarea acestor informații într-o bază de date a motorului de căutare

    Căutați în baza de date a documentelor indexate

    Poate consta din mai multe etape

    Găsirea documentelor care corespund unei interogări de căutare

    Clasificarea documentelor în funcție de relevanța lor pentru interogările de căutare

    Gruparea documentelor

    Note

    Vezi si


    Fundația Wikimedia. 2010.

    Vedeți ce este un „motor de căutare” în alte dicționare:

      Motor de căutare- (motor de căutare): un server web care indexează pagini web pe serverele disponibile (de exemplu, Yandex)... Sursa: RESURSE INTERNET. CERINȚE DE ACCESIBILITATE PENTRU PERSOANEI CU HAZĂ DE VEZ. GOST R 52872 2007 (aprobat prin Ordinul Rostekhregulirovaniya din data de... ... Terminologie oficială

      motor de căutare- Server web care indexează pagini web pe serverele disponibile (de exemplu, Yandex). [GOST R 52872 2007] Subiecte tehnologia informației în general EN motor de căutare ... Ghidul tehnic al traducătorului

      Pe Internet, un site special pe care un utilizator, la o anumită solicitare, poate primi link-uri către site-uri care corespund acestei solicitări. Sistemul de căutare este format din trei componente: 1 robot de căutare; 2 indici de sistem; si 3 programe,...... Dicţionar financiar

      Pe Internet, un motor de căutare care: trimite o cerere de căutare către mai multe motoare de căutare; și generează un rezumat (pe o singură pagină) din răspunsurile primite. În engleză: Meta motor de căutare Sinonime: Meta caterpillar Sinonime în engleză: Metacrawler... ... Dicţionar financiar

      Acest articol trebuie rescris complet. Pot exista explicații pe pagina de discuții. Complexul de software și hardware pentru motor de căutare cu o interfață web care oferă capacitatea de ... Wikipedia

      Sistem de căutare- – (motor de căutare în limba engleză, sinonime: motor de căutare, motor de căutare, motor de căutare) – Un instrument de căutare a informațiilor pe Internet. De regulă, munca unui motor de căutare constă în două etape. Program special (robot de căutare, mitralieră, agent,... ... Dicționar Enciclopedic al Media - Motorul de căutare este un site web care oferă posibilitatea de a căuta informații pe Internet. Majoritatea motoarelor de căutare caută informații pe site-uri web World wide web, dar există și sisteme care pot căuta fișiere pe servere ftp, produse în ... ... Wikipedia

    Cărți

    • Cu privire la problema eficienței căutării specificului pe Internet, I. A. Semenov. Potrivit cercetării Berkley, cantitatea de informații de pe Internet din 2003 a fost estimată la 258,85 terabytes, iar acestea sunt doar date disponibile public. De Date de pe internet Statistici mondiale, creștere... carte electronică
    • Serghei Savenkov

      un fel de recenzie „scurtă”... de parcă s-ar grăbi undeva