Mysql
 sql >> Baza danych >  >> RDS >> Mysql

alternatywa levenshteina

Jeśli jesteś przywiązany tylko do MySQL, nie ma łatwego rozwiązania.

Zwykle jest to rozwiązywane za pomocą wyspecjalizowanego indeksowania ngramów do szybkiego filtrowania wyszukiwania kandydatów, a następnie obliczania levensthein tylko dla 10-50 kandydatów, co jest szybsze niż obliczanie levensthein dla wszystkich par.

Wyspecjalizowane wyszukiwarki pełnotekstowe, takie jak Solr/Lucene, mają to wbudowane.

PostgreSQL posiada moduł contrib pg_trgm (http://www.postgresql.org/docs/9.0/static/pgtrgm.html), który działa jak czar.

Możesz nawet symulować to w MySQL, używając indeksowania pełnotekstowego, ale musisz zebrać słowa ze wszystkich dokumentów, przekonwertować je na ngramy, utworzyć na nich indeksy pełnotekstowe i zhakować je wszystkie razem, aby szybko je wyszukać. Co powoduje różnego rodzaju problemy z redundancją, synchronizacją… niewarte twojego czasu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wspólne wyrażenie tabelowe w MySQL

  2. Zapytanie SQL do obliczenia salda konta

  3. Wysoka precyzja liczbowa unosi się dzięki MySQL i SQLAlchemy ORM

  4. Jak użyć wartości ciągu/kolumny jako stałej interwału daty mysql (DZIEŃ, MIESIĄC...)?

  5. Jak kaskadowo utrzymywać się przy użyciu JPA/EclipseLink