La idea es dejar una clase que genere una consulta MySQL de busqueda utilizando los indices FULLTEXT.
Lo primero son las limitaciones o requerimientos:
Primero veamos la estructura de una tabla de ejemplo, que podria ser la del siguiente codigo...
Una vez creada la tabla y si no creamos el indice FULLTEXT, que en este caso serian los campos titulo y desarrollo, creamos el indice. La consulta funcionara igual si no se crea dicho indice pero sera mucho mas lenta que si lo creáramos.
Realizado estos dos pasos ya podemos ir al código de la clase:
Archivo: BuscadorFullText.php
Como se utiliza la clase:
El código de un ejemplo básico de utilización seria el siguiente.
Explicación del Código:
linea 10> Incluimos la clase a ser usada.
linea 11> Instanciamos la clase pasándose como parámetros, el valor
del campo de búsqueda de nuestro formulario y el nombre de la tabla que
se usara.
linea 14> $obj2->getValue(‘buscar’); este método nos retorna una
cadena que puede ser usado correctamente en un value de un campo
encerrado entre comillas dobles.
linea 23> Le indicamos cuales son los campos que pertenecen al indice
fulltext, en este caso tenemos dos formatos un string separados por
coma o un arreglo conteniendo en cada indice del arreglo uno de los
campos.
linea 24> Pasamos los campos que queremos como resultados en la consulta.
linea 25> En este caso el formulario dispone de un campo para la
categoría de la noticia, que varia según lo que selecciona el usuario. A
este método le pasamos el nombre del campo del formulario que deberá
coincidir con el de la tabla y el tipo de operador = > < etc.
También disponemos de un método addParametrosFijos donde se le pasa
alguna condición fija que se quiera.
linea 26> Cargamos la consulta en la variable $consulta !!! ojo !!!
pues se usa con sprintf pues se tiene que incorporar los datos para el
limit.
linea 27> Cargamos los datos del limit y ya podremos usarla en nuestra consulta mysql.
Espero que les resulte útil y cualquier comentario o error por favor avisarme para así corregirla, pues salio con pocas pruebas.
Próximamente agregare otro articulo para usar de manera conjunta, esta clase y el paginador.
FUENTES:
Búsquedas booleanas de texto completo (FullText)
Afinar búsquedas de texto completo (FullText) con MySQL
Funciones de búsqueda de texto completo (Full-Text)
No hay comentarios.