Eliminarea înregistrărilor similare

  • Sphinx


În proiectul nostru, utilizatorii adaugă material - acesta este un șir de text, de până la 300 de caractere.

Există o mulțime de duplicate. Aș dori să fac o verificare atunci când adaugă: dacă linia adăugată este similară cu 90% cu cele deja adăugate, atunci nu o adăugați.








MySQL este folosit ca bază de date.








În acest moment, soluția a venit:


- eliminați din șir toate semnele de punctuație și spațiile

- mai mică în litere mici

- efectuarea hash-ului md5 al mesajului primit

- adăugați un hash la un câmp separat în baza de date

- când adăugați unul nou - verificați dacă există o astfel de bază de date


Soluția nu este cea mai bună, poate că este ceva mai bun?


P.S. Înregistrări de aproximativ 10 mii pe zi au adăugat 500 de noi. Există o oportunitate de a utiliza sfinx, dar nu am găsit funcții similare.







Articole similare

Trimiteți-le prietenilor: