În studiul meu de identificare a unei soluţii mai raţionale de content management lipsea o singură piesă: un mecanism simplu şi eficient de căutare. În orice aplicaţie non-trivială, care are mai mult de... ăăă... 20 de pagini să zicem, e nevoie de căutare. Într-un catalog de produse sau o biliotecă on-line nu faci nimic fără un motor bun de căutare.

O soluţie poate fi Google. Azi am observat că Googlebot vizitează html.md cam odată pe oră. Asta e super suficient pentru 95% din aplicaţii: dacă adaugi un produs în catalog, într-o oră, sau să zicem în cîteva ore, e găsibil cu Google Site Search. Cu un pic de organizare, se publică produsele noi de cu seară, şi mîine dimineaţă, sunt în index la Google! Foarte super!

Toate's bune şi frumoase, şi e o soluţie care ar funciona pentru multe site-uti, bloguri, sau forumuri, sau alte site-uri de acest gen care publică content nestructurat, dar, un catalog e-commerce uneori are nevoie de mai mult.

Dacă te uiţi la Amazon, există filtre care progersiv îngustează gama de produse în funcţie de parametrii care îi alegi. De exemplu dacă cauţi un laptop. Îi bifezi: marca, după aceea dimensiunea, cît RAM vrei să aibă, cît HDD, dacă să aibă sau nu cameră încorporată, etc. etc. pînă din mulţimea de produse care o ai iniţial se aleg cîteva. Aşa ceva e greu de făcut cu Google Site Search. Desigur există Google Commerce Search, dar asta e soluţie comercială, cu multe zerouri ("Pricing starts at $25,000 per year."), care nu e real pentru un e-commerce din Moldova.

Mai poţi încerca să faci în mod clasic, sau mainstream, cum face toată lumea, cu un RDBMS, şi, trebuie să recunosc că am făcut şi eu aşa la un moment dat... ;) şi pot spune din experienţă că e overkill... Deci, nu.

Zilele astea, din greşeală am auzit de Apache Solr, un soft de indexare despre care am mai auzit, am şi tras cu ochiul pe site la ei, dar văzîndu-l Java, oarecum mă uitam sceptic la el, şi de fiecare dată nu mergeam prea departe în documentaţie. Azi am avut suficientă răbdare să-l descart şi instalez urmînd un simplu tutorial de 15 minute.

Pe scurt, am rămas super-impresionat de mulţimea de feluri de căutări pe care le poate face, am rămas cu impresia că e exact construit pentru genul de filtrare de care ziceam în paragraful precedent. Un plus major e că poţi "vorbi" cu el prin HTTP direct, nu ai nevoie de drivere sau aplicaţii specializate. Poţi folosi curl pentru a încarca datele în el prin HTTP POST, iar căutările se fac prin HTTP GET. Foarte super! Poţi avea o pagină statică de căutare, din care îi trimiţi parametrii căutării prin AJAX, primeşti răspunsul şi construieşti din rezultate pagina HTML. Foarte super extraordinar! Pînă aici deja avea nota 10 după funcţionalitate, dar cînd am văzut că instanţa exemplu care vine cu kitul de instalare are doar 18 MiB, ceea ce e foarte super puţin pentru aplicaţiile de acest gen din lumea Java, m-a dat gata! :)

O să continui să văd ce poate face şi cum merge, dar pînă aici, îi dau titlul "piesa care lipsea" şi tre' să recunosc că m-a făcut să mă simt mult mai bine. :)

Foarte foarte super extraordinar!

html_md?d%3DyIl2AUoC8zA html_md?i%3DADlFft46O2o:84nmD9-FziM:F7zBnMyn0Lo html_md?i%3DADlFft46O2o:84nmD9-FziM:V_sGLiPBpWU html_md?d%3Dqj6IDK7rITs html_md?i%3DADlFft46O2o:84nmD9-FziM:-BTjWOF_DHI