Búsquedas con Full text search o Lucene.net

13.12.2014 20:25

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.