Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2006, 06:39
jotamachuca
 
Fecha de Ingreso: octubre-2004
Mensajes: 143
Antigüedad: 19 años, 6 meses
Puntos: 0
Construyendo un Buscador Eficiente

Hola a todos

Tengo que hacer un bsucador a una aplicación que estoy haciendo..

La aplicacion que estoy construyendo tiene bastantes tablas, por ende cada tabla puede tener contenido del que se esta buscando...Para el manejo de estro, existen clases específicas, de manera de que estas clases sean las encargadas del manejo del contenido.

Ahora para el buscador, como tengo cada clase definida para su contenido, pienso implementar un metodo para cada clase, que construya una instrucción sql que permita obtener los datos de busquedas de su contenido.. Me explico, cada clase genere una instrucción sql como la que sigue

Código:
SELEC ID_ARTICULO , substr(NOMBRE,1, 50) AS NOMBRE_ARTICULO , substr( ARTICULO , 1, 50) AS DESCRIPCION, MATCH(NOMBRE, ARTICULO) AGAINST('encomillada') as PUNTUACION 
FROM ARTICULO 
WHERE ((ID_TIPO =7) OR (ID_TIPO=8)) 
OR MATCH(NOMBRE, ARTICULO) AGAINST('encomillada')
y recorrer todas las clases (en total como 10, este numero puede crecer...pero no mucho), e ir obteniendo la query correspondiente.

Una vez que tego ltodas las querys, las uno con UNION.. de manera de ejecutar un graaan query que traiga todos los resultados de busqueda, una cosa asi
Código:
SELECT.....
   ...
   ...
UNION
SELECT.....
   ...
   ...
UNION
SELECT.....
   ...
   ...
...
ORDER BY PUNTUACION
Ahora, hasta el momento explico esto, uno, para que alguien que tenga alguna duda como hacer un buscador, por ultimo tenga una nueva vista , y lo segundo que es la consulta, que es lo que paso a explicar.

Si se dan cuenta, para cada tipo de contenido, existe una tabla principal (en el ejemplo ARTICULO, primer query) y ademas esta posee tablas referenciales (en el ejemplo ID_TIPO, primer query).. Bueno, cada clase es la que genera su propio query, y esto tiene un desgaste del server.

Por ende estaba pensando en implementar algún tipo de mecanismo que permita almacenar esta consulta, de manera de controlar , si se repite la palabra de busqueda, obtener directamente el query formado de antes...

Ahora, la duda.. o las sugerencias...

Que mecanismo usaria para implementar este almacenamiento, y por que

Espero sus comentarios

Saludos