sql >> Base de Datos >  >> RDS >> Mysql

MySQL LIKE %string% no es lo suficientemente indulgente. ¿Algo más que pueda usar?

Si está usando MyISAM, puede usar la indexación de texto completo. Vea este tutorial

Si usa un motor de almacenamiento diferente, puede usar un motor de texto completo de terceros como sphinx, que puede actuar como un motor de almacenamiento para mysql o un servidor separado que se puede consultar.

Con MySQL texto completo indexando una búsqueda en A J Kelly coincidiría con AJ Kelly (no para confundir las cosas, pero A, J y AJ se ignorarían porque son demasiado cortos de forma predeterminada y coincidirían con Kelly). Generalmente, Fulltext es mucho más indulgente (y generalmente más rápido que LIKE '%string%') porque permite parcial coincidencias que luego se pueden clasificar según su relevancia.

También puede usar SOUNDEX para hacer que las búsquedas sean más indulgentes al indexar los equivalentes fonéticos de las palabras y buscarlas aplicando SOUNDEX en sus términos de búsqueda y luego usándolos para buscar en el índice. Con soundex mary , marie y marry todos coincidirán, por ejemplo.