Vreau sa implementez un motor de cautare pe o platforma in care sa se faca cautarea printre posturi, ceva similar cu search-ul de pe devforum (functionalitatate de a evidentia cuvintele din search in rezultate etc.).
Oare ce as putea folosi pentru asta ? E ceva Javascript/PHP plugin ?
Nu stiu ce foloseste discourse (devforum), dar eu ti-as recomanda Elasticsearch, iti deschide mult mai multe orizonturi decat un simplu highlight la matching words.
Eu personal m-am uitat pe niste librari in Python prin 2012 de NLP era trend-ul asa cum acuma e Machine Learning, nu am avut rabdarea sa inteleg low level cum functioneaza NLP ci sa am o idee high level ce face framework-ul.
Ne vom despărți definitiv de Flavius; a primit deja prea multe suspendări, prea multe avertismente și prea multe plângeri de la utilizatori. Îmi pare rău că se întâmpla asta, dar mai bine renunțăm la un utilizator decât să ajungem să ne fie teamă să mai spunem ceva. Da, sunt de acord că ar fi bine să filtrăm un pic conținutul, dar poate că ar fi o idee bună ca cel ce întreabă să nu ajungă să se simtă ca ultimul om că nu știe x sau y;
@nush va primi suspend trei zile pentru offtopic (ar fi fost de preferat un flag în locul unui răspuns) și pentru împungerile cu Flavius de mai sus
Curățăm topicul de offtopic (flag dacă îmi scapă ceva)
Personal nu recomand folosirea unui search engine dedicat daca e vorba de date putine (mii, zeci de mii de inregistrari).
In cazul folosirii MySQL poti sa te folosesti de ceea ce asigura baza de date MySQL Full Text Index fara complexitate aditionala.
Pentru partea de highlight eu asi folosi o solutie JS care sa-ti permita sa controlezi mai bine cum faci highlight-ul.
Știu că e un subiect foarte vechi, dar e amuzantă data până când utilizatorul Flavius:rămâne suspendat: “Acest utilizator este suspendat până la 03 dec. 2289 14:42”.
Ca o paranteză numai, presupunând că cineva n-a știut la data respectivă, Flavius este un utilizator fidel saftapedia. Se joacă și acolo de-a profesorul sub numele OriginalCopy. Are cine să-i permită. O gălăgie de nesuferiți acolo (mă abțin).
Îl recunosc pe “domn” dintr-un milion de oameni. Dacă ceri ajutor să deschizi un lacăt și ți-a văzut topicul, ai încurcat-o. Deznodământul subiectului ar fi următorul:
De unde ai cumpărat lacătul ?
Din ce material este lacătul ?
De câți ani ai lacătul ?
Garanție la el ai ?
Bonul fiscal de unde a fost cumpărat unde e ?
Ai citit documentația lacătului ?
Hei, toți ceilalți utilizatori, aveți lacătele la locul lor ?
Bun. E totul în regulă. Ca să desfaci lacătul, trebuie mai întâi să construiești unul nou, ca să poți înțelege mecanismul.
Într-un final sfârșești aruncând lacătul cu tot cu ușă pe geam.
Algolia e in spatele motorului de cautare de pe symfony.com
Citisem mai demult detaliile tehnice, pe vremea aceea nu m-au convins ca e mai bun ca un cached search layer handcrafted, plus ca trebuie sa le dai si datele tale (ceea ce nu e o problema daca esti un framework opensource, dar poate fi daca ai date mai critice ne-afisate pe baza carora faci ordonarea rezultatelor).
Votez Algolia cu doua maini. L-am folosit peste 2 ani in productie si am fost multumit de viteza, stabilitate, integrare, sincronizare, documentatie, suport (pe un plan platit). Un serviciu care pur si simplu… functioneaza.
Latency-ul e redus si datorita eliminarii unor layere clasice (ex: nu au load balancer, balansarea facandu-se direct din libraria utilizata de client; nu stiu daca au schimbat asta intre timp).
Ai dreptate privind datele: daca exista vreun policy care nu-ti permite sa distribui datele unor externi, e gata povestea.
Si, cum am mai zis pe-aici, nu-i recomandat pentru orice business sa se bazeze 100% pe o solutie externa pentru anumite features.
Dupa ce nu am mai participat la proiectul unde am folosit Algolia search, mi s-a spus ca au fost cateva momente de downtime la un moment dat. Evident, riscul asta exista.