Poate părea o sarcină dificilă, dar implementarea unei funcții de căutare eficiente în aplicația ta nu este complicată și nu necesită mult timp. Iată câteva recomandări valoroase!
Deși multe tehnologii au evoluat semnificativ în ultimele decenii, funcția de căutare a devenit o componentă esențială a vieții noastre. O regăsim pretutindeni – pe site-uri de e-commerce, bloguri, baze de date și multe altele – nu doar pentru aspectul modern al unei căsuțe de căutare, ci mai ales datorită utilității sale incontestabile.
Dacă organizația ta este în căutarea unei soluții de căutare performante sau dorești să înlocuiești sistemul actual, ce opțiuni ai la dispoziție?
Din fericire, nu este necesar să aloci sume mari pentru licențe sau să susții o echipă extinsă de dezvoltatori și administratori de sistem. Voi prezenta câteva motoare de căutare care pot fi instalate și integrate rapid, fiind o alegere ideală mai ales pentru firmele mici cu echipe de dezvoltare restrânse.
MeiliSearch
MeiliSearch este un motor de căutare remarcabil, recunoscut pentru calitatea și eficiența sa.
Ce mă determină să includ MeiliSearch printre recomandările de top?
Iată motivele:
Cod sursă deschis
Întregul cod sursă al MeiliSearch este disponibil public pe GitHub. Acest aspect permite dezvoltatorilor să analizeze în detaliu fiecare componentă a codului. Astfel, companiile pot avea încredere în calitatea și integritatea sistemului (fiind excluse eventualele vulnerabilități ascunse sau software-uri de supraveghere). Mai mult, programatorii experimentați pot contribui la dezvoltarea și îmbunătățirea tehnologiei.
Experiență utilizator excelentă (UX)
MeiliSearch se remarcă prin simplitate și intuitivitate. Nu necesită reguli complicate sau sintaxe specifice. Căutările sunt procesate în mod natural, iar rezultatele apar rapid și relevant. Motorul este tolerant la greșeli de scriere și recunoaște sinonime, oferind rezultate precise. De asemenea, suportă multiple limbi.
Experiență dezvoltator superioară (DevEx)
Dezvoltatorii vor aprecia MeiliSearch datorită flexibilității și scalabilității sale. Acesta utilizează o interfață API REST. Documentația este excelentă și completă. Deși apelurile HTTP sunt ușor de realizat în orice limbaj, sunt oferite exemple în cinci limbi (JavaScript, Ruby, Python, Golang și PHP) pentru a facilita implementarea rapidă.
Soluțiile de căutare simple trebuie să fie ușor de utilizat și configurat. MeiliSearch bifează toate cerințele! Dacă ești hotărât să începi, poți instala platforma pe DigitalOcean printr-un singur clic.
Solr
Solr, un proiect Apache, este o soluție consacrată. Aceasta este construită pe baza bibliotecii Lucene, recunoscută pentru fiabilitatea sa, pe care se bazează și ElasticSearch. Solr este o soluție de căutare puternică, scalabilă, conformă standardelor, bogată în funcții și extrem de fiabilă.
Solr este utilizat de companii importante precum Disney, eBay, Netflix, Zappos și BestBuy. Cu toate acestea, nu înseamnă că nu poți implementa o instalație mai mică și mai simplă (de exemplu, pe un singur server, fără scalare sau failover) și să beneficiezi de puterea acestei platforme.
De ce să alegi Solr?
Iată câteva motive convingătoare:
Precizie și putere
Solr este recunoscut ca fiind unul dintre cele mai precise, performante și puternice sisteme de căutare la nivel global. Fiind open-source, a atras interesul unor companii de renume. Capacitatea sa de a analiza documente și a răspunde la interogări este remarcabilă.
Instalare și întreținere simplă
Instalarea Solr este la fel de simplă ca dezarhivarea și rularea programului. Pentru sistemele simple, pe un singur server, întreținerea nu este complicată. Este important să monitorizezi utilizarea memoriei RAM, deoarece soluțiile de căutare, în special cele bazate pe Java, pot consuma resurse semnificative (din cauza stocării datelor în memorie pentru acces rapid).
Panoul Administrator
Solr include un panou de administrare care permite monitorizarea și configurarea vizuală a sistemului. Chiar și utilizatorii fără cunoștințe avansate de programare pot învăța să interpreteze diagramele cheie. Puține soluții de căutare din această listă oferă această funcționalitate.
Sursa imagine: Site oficial
API standardizat
Solr oferă o interfață API care gestionează multiple formate de date – JSON, CSV, XML și binar. Datele de monitorizare sunt conforme cu standardul JMX, un avantaj major pentru programatorii Java.
Există multe argumente în favoarea Solr, dar acoperirea tuturor aspectelor ar necesita foarte mult timp. Solr este o soluție de top, o alegere excelentă indiferent de tipul de date pe care le gestionezi.
Elasticsearch
Elasticsearch a fost și este încă un pionier în căutarea de text liber. Chiar și în prezent, majoritatea programatorilor sau administratorilor de sistem vor recomanda Elasticsearch ca primă opțiune în materie de motoare de căutare. Unele persoane ar putea recomanda și soluții precum Algolia, dar acestea au fost deja menționate. 🤪
Nu te lăsa indus în eroare de butonul „Începeți încercarea gratuită” din graficul de mai sus. Deși tehnologia de bază Elasticsearch este open source și gratuită, compania se axează pe monetizarea eforturilor sale, vizând în special companiile mari. Aici, se oferă o perioadă de testare pentru serviciul lor cloud, care simplifică gestionarea Elasticsearch, mai ales în cazul clusterelor.
Pentru a rezuma, Elasticsearch este open source și gratuit, fiind ușor de configurat și utilizat fără limitări.
În continuare, vom analiza motivele pentru care să alegi Elasticsearch:
- Motor de căutare matur, testat în condiții reale. Acest lucru înseamnă că este mult mai probabil să găsești soluții în caz de erori neașteptate.
- Axat pe clustering, scalabilitate și scrieri asincrone.
- Accesibil printr-un API REST simplu.
- Orientat pe documente, dar suportă schema dacă este necesar.
- Rezultate rapide și precise. Viteza de căutare este configurabilă.
- Documentație excelentă, atât ca volum, cât și ca utilitate.
- Oferă o platformă cloud completă pentru căutare și analiză (stiva ELK), dacă dorești să beneficiezi de un plus de comoditate, contra cost.
Un dezavantaj al Elasticsearch este consumul mare de memorie RAM. Acest aspect poate fi o barieră pentru unii clienți care preferă o soluție mai economică în ceea ce privește costurile de infrastructură.
Dacă dorești să înveți să utilizezi Elasticsearch, poți consulta acest curs Udemy.
Typesense
Typesense este un motor de căutare simplu, ușor de utilizat, dar puternic. Reprezintă o alegere ideală pentru cei care caută utilitate și simplitate.
Un avantaj major al Typesense este posibilitatea de a-l testa direct pe site-ul oficial. Acest lucru te ajută să eviți frustrarea și pierderea de timp, mai ales în situațiile în care, după configurarea sistemului, descoperi că unele funcții nu funcționează conform așteptărilor.
Asta nu înseamnă că motorul ar putea avea erori; pur și simplu, este posibil ca funcționalitățile oferite să nu fie potrivite pentru cerințele tale. Poți verifica cum se comportă motorul cu diferite tipuri de erori de scriere, simboluri speciale, sinonime etc. chiar pe pagina de start a site-ului (pentru testare se utilizează o bază de date cu cărți).
După cum se observă în imaginea de mai sus, în caseta de căutare a fost introdus termenul „tra”, iar dedesubt sunt afișate rezultate relevante din baza de date cu cărți (inclusiv metadate – rezultate totale, pagina curentă etc.).
Typesense oferă multe avantaje:
- Tehnologia este open source și accesibilă.
- Permite configurarea ușoară a unui sistem HA (High Availability).
- Este tolerant la greșeli de scriere și alte erori în interogările de căutare.
- Oferă un sistem avansat de filtrare pentru a controla rezultatele căutării.
- Dispune de o interfață API REST simplă.
- SDK-uri (Software Development Kit) sunt disponibile pentru limbaje populare (JavaScript, Python, Ruby și PHP).
Dacă ideea de a configura noi servere te descurajează, Typesense oferă și o soluție cloud care poate fi activată printr-un singur clic. Facturarea se face la oră, fără a ține cont de numărul de citiri și scrieri. Această opțiune este potrivită pentru majoritatea companiilor, cu condiția să existe o evaluare prealabilă a costurilor.
În concluzie, Typesense este o alegere excelentă dacă ai nevoie de o soluție compactă, eficientă, precisă și rapidă.
Sonic
Sonic se prezintă ca o alternativă la ElasticSearch care funcționează cu „câțiva MB de RAM”.
Cum este posibil?
Mașina virtuală Java (JVM) este cunoscută pentru consumul mare de RAM (doar la pornire, JVM consumă aproximativ 1 GB de RAM). Prin urmare, un motor codat în limbajul Rust (care oferă programatorilor control complet și siguranță a memoriei) poate rula rapid și cu un consum minim de resurse.
Relaxați-vă! Aceasta este doar mascota proiectului.
La momentul scrierii acestui articol, câteva companii figurează pe lista de utilizatori ai Sonic. Deși am întâlnit acest motor de căutare mai devreme, am considerat că va mai dura ceva timp până la maturizare și corectarea eventualelor erori. Se pare că s-au făcut progrese semnificative. Doar timpul va arăta cât de popular va deveni Sonic.
De ce ar trebui să alegi Sonic pentru organizația ta?
Iată câteva motive:
- Consum extrem de redus de memorie RAM.
- Biblioteci disponibile pentru majoritatea limbajelor de programare. Dezvoltatorii au lansat biblioteci pentru Node, PHP și Rust, iar comunitatea a creat altele pentru limbaje precum Elixir și Nim.
- Suportă multiple limbi (aproximativ 40-50 de limbi).
- Poți utiliza și limbi noi, deși vei pierde unele funcții avansate, precum cuvintele stop.
- Motor foarte rapid. Testele au demonstrat timpi de indexare și căutare de ordinul microsecundelor.
Dacă dorești să vezi motorul în acțiune, accesează acest link (unul dintre utilizatorii Sonic) și testează funcția de căutare:
Sonic are anumite limitări. Dezvoltatorii le-au evidențiat pe pagina GitHub a proiectului. Este recomandat să analizezi această listă și să te asiguri că aceste limitări nu îți afectează cazurile de utilizare. În general, orice soluție are limitări, dar în cazul Sonic, acestea sunt prezentate deschis, ceea ce îl face o alegere de încredere.
TNTSearch
TNTSearch este o opțiune fascinantă din această listă. Un aspect interesant este faptul că acest motor de căutare complet, pregătit pentru producție, a fost scris în PHP!
Da, PHP, dintre toate limbajele posibile. Și menționez acest lucru nu pentru că am o antipatie față de PHP, ci pentru că este un proces de scurtă durată prin definiție.
Un alt lucru interesant este licența lor, cel puțin la momentul scrierii acestui articol. Licența în sine este MIT, deci nu există probleme. Cu toate acestea, autorii clasifică software-ul ca PS4Ware. Asta înseamnă că dacă folosești TNTSearch în producție, ar trebui să le trimiți un joc PS4! Nu este obligatoriu, dar este un aspect amuzant. Sper că în curând vor face upgrade la o licență PS5.
Fiind un utilizator activ al mediului PHP + Laravel, apreciez eforturile depuse de acești dezvoltatori. Site-ul lor nu oferă prea multe informații, dar se pare că aceștia activează în domeniul consultanței, deci îți recomand să iei legătura cu ei dacă ai proiecte în desfășurare!
Există motive solide pentru a utiliza TNTSearch în proiectele tale?
Da, iată care sunt acestea:
- Codat în PHP, pentru PHP. Ecosistemul PHP are nevoie de soluții dedicate, de înaltă calitate, precum aceasta.
- Oferă funcții importante, precum căutarea neclară, căutarea geografică și clasificarea textului.
- Permite modificarea ușoară a indexului de căutare, o flexibilitate majoră care lipsește în multe soluții.
- Funcții precum stemming, clasamentul BM25 și tokenizarea personalizată asigură o precizie ridicată.
- Implementare ușoară – ca orice alt pachet Composer.
Poți verifica performanța motorului aici și poți observa singur cât de rapid și precis este. Reiterez aspectul PHP: dacă gestionezi un proiect PHP, este de preferat să utilizezi tehnologii din ecosistemul PHP. Pentru astfel de cazuri, TNTSearch oferă o propunere de valoare greu de refuzat!
Vespa
Vespa este o soluție amplă și complexă. La fel ca alte câteva opțiuni din această listă, nu poate fi descrisă pe scurt. Dar voi încerca. 🙂 Vespa este un motor de căutare, dar folosirea lui ca un motor de căutare obișnuit îi va risipi potențialul.
Vespa a fost creată pentru a gestiona cantități mari de date (Big Data) și pentru a oferi funcții bazate pe Machine Learning și personalizare avansată.
Vespa se poziționează ca un concurent al Elasticsearch și bazelor de date tradiționale, oferind o comparație utilă pentru a înțelege când să utilizezi fiecare soluție.
După cum se observă, cu cât dorești să te apropii de operațiunile bazate pe Machine Learning, cu atât Vespa devine o alegere mai logică. Ca motor de căutare simplu, pentru o afacere mică sau medie, nu cred că are avantaje față de alte opțiuni.
Având în vedere că generezi continuu cantități mari de date și dorești să îmbunătățești procesul de luare a deciziilor cu ajutorul AI/ML (o descriere care se potrivește multor afaceri SaaS), iată de ce Vespa poate fi o alegere ideală:
- Sursă deschisă: fără licențe complicate sau contracte ascunse.
- În timp real: Vespa este cu adevărat în timp real. Nu doar procesează, analizează și caută date în timp ce acestea sunt introduse, dar și configurația sa poate fi modificată din mers.
- Scalabilă și tolerantă: Vespa este ușor de scalat. De asemenea, gestionează eficient dispariția bruscă a nodurilor, oferind o fiabilitate ridicată.
- Clasare și recomandări: recomandările de căutare, clasare și Vespa pot fi combinate cu interogări structurate pentru a oferi rezultate precise.
- Integrare ușoară AI/ML: Vespa oferă modele ML pre-antrenate. Nu este necesar să angajezi o echipă de cercetători pentru a curăța și utiliza datele.
- Pluginuri personalizate: oferă un set complet de API-uri care permit dezvoltatorilor să creeze pluginuri Java personalizate, în cazul în care doresc să modifice modul de funcționare al motorului.
Vespa este o soluție complexă, destinată echipelor care depășesc nivelul de bază – fie că este vorba de dimensiunea echipei, competențele tehnologice, bugetul pentru infrastructură, volumele zilnice de date sau alte aspecte. Pentru acest segment, Vespa este o alegere excelentă și este recomandată cu încredere.
Ambar
Unele companii nu stochează datele de căutare sub forma unor documente JSON bine structurate. În schimb, dispun de o colecție haotică de fișiere de diferite tipuri, precum documente Word, PDF, HTML etc. Dacă te regăsești în această situație, Ambar poate fi soluția perfectă!
Ambar se remarcă prin tipurile de fișiere pe care le suportă:
- Formate de fișiere MS Office (.docx, .xlsx etc.), inclusiv PowerPoint, Visio și Publisher!
- Formate de fișiere OpenOffice.
- Documente PDF cu OCR aplicat automat pentru a extrage informații.
- Imagini.
- Formate de arhivă de e-mail, cum ar fi PST (pentru utilizatorii Outlook).
- Mesaje de e-mail cu atașamente.
Ambar este capabil să gestioneze fișiere mari (peste 30 MB), arhive ZIP și utilizează multithreading pentru utilizarea completă a procesorului și rezultate mai rapide. Dacă ai documente arhivate pe un server vechi, Ambar te poate ajuta să le valorifici!
Concluzie
Funcția de căutare este puternică, magică și omniprezentă!
Deși ar putea părea o magie neagră, în prezent nu există niciun motiv pentru care oricine (cu ajutorul unui dezvoltator, desigur) să nu poată beneficia de avantajele sale. De la companii la persoane fizice, motoarele de căutare din această listă oferă o propunere cu costuri minime, dar cu beneficii și impact considerabil.
Poți alege un server cloud și să instalezi unul dintre motoarele de căutare menționate mai sus, pentru a le testa.