El servicio de búsqueda: directrices generales

La primera tarea de diseño consiste en decidir qué datos desea poder buscar. ¿En qué campos desea poder realizar búsquedas? ¿Qué datos desea que devuelva la búsqueda? Existen varios inconvenientes, por lo que vale la pena pensar en estas cuestiones detenidamente.

En primer lugar, el índice debe contener tan pocos campos como sea posible. Menos campos implican un índice menor en el momento de la ejecución y menos uso de los recursos del sistema. No los ponga en su servicio de búsqueda a menos que lo necesite.

Cada campo del índice se puede indexar (es decir, se pueden realizar búsquedas en él), almacenar (es decir, se puede recuperar su valor), o las dos cosas. Las razones por las que puede querer indexar un campo son evidentes: poder realizar búsquedas basadas en el campo en cuestión. Sin embargo, es posible que no desee realizar búsquedas en algunos campos, como por ejemplo ID no legibles. También es posible que desee añadirlos a su servicio de búsqueda como campos almacenados pero no indexados, de modo que pueda realizar búsquedas de base de datos basadas en los resultados de las búsquedas. Si no es necesario indexar un campo no lo haga; los procesos de extracción se ejecutarán más rápidamente y el índice consumirá menos recursos del sistema.

Del mismo modo, puede optar por almacenar los valores de los campos o no. En general, el índice no almacena el valor original de un campo, sino que mantiene solo una representación en la que se pueden realizar búsquedas. En general, para que sea útil, una búsqueda debe almacenar al menos un campo (la clave primaria correspondiente del registro de base de datos).

Después de esto, almacenar campos o no tiene sus ventajas y sus inconvenientes. Puede almacenar todos los campos que necesita para mostrar los resultados de la búsqueda o puede almacenar sólo los ID de base de datos y utilizarlos para recuperar los datos de la base de datos para visualizarlos. La primera opción tendrá como resultado un índice mucho mayor, pero una visualización más rápida de los resultados de la búsqueda porque la base de datos no es necesaria.