sql >> Database >  >> RDS >> Mysql

levenshtein alternatief

Als je alleen aan MySQL gebonden bent, is er geen gemakkelijke oplossing.

Meestal wordt dit opgelost met behulp van gespecialiseerde ngram-indexering voor snelle zoekfiltering van kandidaten en vervolgens het berekenen van levensthein alleen voor 10-50 kandidaten, wat sneller is dan het berekenen van levensthein voor alle paren.

Gespecialiseerde fulltext zoekmachines zoals Solr/Lucene hebben dit ingebouwd.

PostgreSQL heeft een pg_trgm contrib module (http://www.postgresql.org/docs/9.0/static/pgtrgm.html) die als een zonnetje werkt.

Je kunt dit zelfs in MySQL simuleren met behulp van fulltext-indexering, maar je moet woorden uit al je documenten verzamelen, ze converteren naar ngrams, er fulltext-indexen op maken en ze allemaal samen hacken om ze snel op te zoeken. Wat allerlei problemen met zich meebrengt met redundantie, synchronisatie... niet de moeite waard.




  1. Hoe de functie MAKE_SET() werkt in MySQL

  2. Mysql, hervorm gegevens van lang / hoog naar breed

  3. De eigenschap IDENTITY() gebruiken in SQL Server

  4. jQuery UI Sorteerbaar en schrijf vervolgens de volgorde in een database