Buscar en mysqldb con php

votos
2

Cómo implementar una gran búsqueda dentro de un mysqldb - dentro de una tabla si busco con '... LIke% bla% ....' no se encontrarían todos los entrys - si bla dentro de una palabra, por ejemplo. una búsqueda con soundex sería genial, pero si leo el manual, ¿debo crear un índice soundex para buscar valores de soundex?

Así que la pregunta es cuál es la mejor práctica para escribir una buena búsqueda de bases de datos con una palabra clave dentro de una columna simple título o cualquier otra cosa.

adiós

Publicado el 09/12/2008 a las 16:59
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
2

Si no está dispuesto a instalar y utilizar Sphinx, puede intentar usar algunas de las funciones de búsqueda de texto completo de MySQL como "MATCH"

Esto le permite realizar búsquedas de texto completo e incluso clasifica los resultados con un puntaje de relevancia. Puede escribir consultas como:

SELECT id, col1, col2, MATCH(col1, col2) AGAINST('some text' IN NATURAL LANGUAGE MODE) AS relevance FROM table1;

Incluso puede usar la expansión de consultas para captar otros términos estrechamente relacionados. Por ejemplo, si el usuario busca "base de datos" y los resultados superiores más relevantes contienen "mysql", entonces el mysql también buscará "mysql" porque ha determinado que el término "mysql" está estrechamente relacionado con la "base de datos" término que el usuario buscó.

http://dev.mysql.com/doc/refman/5.1/en/fulltext-query-expansion.html

Respondida el 09/11/2009 a las 02:09
fuente por usuario

votos
2

Para la búsqueda de texto tiene dos opciones además de usar una cláusula LIKE - índice FULLTEXT (que significa usar MyISAM) o usar motores de indexación específicos como Lucene o Sphinx .

Personalmente, recomendaría usar Sphinx, tiene una excelente integración con MySQL y PHP y es muy rápido para la búsqueda de texto (y otras consultas también).

Respondida el 09/12/2008 a las 17:04
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more