Búsquedas con Full text search o Lucene.net
Sql Server incorpora un buscador propio full text cuya ventaja principal es la búsqueda simultánea en varios campos de texto de una misma tabla, no obstante, presenta algunos problemas en cuanto a rendimiento cuando es imprescindible que las búsquedas se realicen instantáneamente, o en funciones autocomplete.
El funcionamiento de full text, consiste en la creación de un indice inverso , el cual es una tabla mapeada orientada a la búsqueda por palabras, cuya funcionalidad supera en prestaciones a la funcion LIKE de búsqueda en un solo campo, proporcionando búsquedas por criterios semániticos, sinónimos y similitudes(stemming).
Una vez creado el catálogo del indice en sql server es posible programar su actualización periodica.
Lucene es una libreria de software disponible para .NEt o Java la cual utiliza tambien indexación inversa, los resultados de una comparativa entre ambos métodos son los siguientes:
LUCENE | SQL SERVER FULL TEXT | |
Actualización automática del indice | no | si |
Almacenamiento de datos en indice | si | no |
Almacenamiento en RAM | si | no |
Interface | API | SQL |
Búsqueda en multiples col | si | si |
Búsquedas semánticas sinónimos etc | si | si |
Estructuración de indice personalizada | si | no |
Uso de comodines | si | si, con restricciones |
Spellchecking, hit-highlighting | si | no |
Asi pues, siempre que dispongamos de suficiente RAM y necesitemos una funcionalidad compleja, la mejor elección es Lucene.