Tesis

Páginas: 2 (479 palabras) Publicado: 9 de noviembre de 2013
03/07/13

Búsqueda "al estilo Google" con PostgreSQL (Full Text Search) - Google Groups

Google Groups
Búsqueda "al estilo Google" con PostgreSQL (Full Text Search)
David Martínez Martí

May30, 2013 5:30 AM

Posted in group: Eneboo

Me gustaría que le dierais un vistazo a esta funcionalidad (que está integrada a partir de Postgresql
8.3) , ya que pude ser muy muy interesante.
Ospongo en situación: muchos clientes piden poder buscar por todos los campos a la vez en una
tabla, por lo que se les pone por defecto el campo de búsqueda en Eneboo a asterisco '*'.
El problema es queesto es funcional para tablas con pocos campos y pocos registros. Además, no
busca por fechas, ni precios, ni otros números. Cuando busca por demasiados campos y registros,
cada búsqueda puededemorarse 3 o 4 segundos (hablando de 30.000 registros x 20 campos)
Hemos hecho unas pruebas en el motor para permitir especificar en las MTD qué campos queríamos
incluir en estas búsquedas y cuales no.Aunque la solución está bastante bien, porque permite limitar
a los 5 o 6 campos que el cliente va a querer buscar normalmente, sigue siendo igual de lento
cuando le pones que busque por 20 campos.A raíz de este problema nos hemos puesto a investigar mecanismos para optimizar este tipo de
consultas. El resultado es bastante bueno, aunque el montaje es un poco complejo. Se trata deimplementar Full Text Search [1] para acelerar la búsqueda, ya que se parece mucho a lo que
queremos hacer. Reduce el tiempo de búsqueda de 4 segundos a 0.05s (50ms)
Os pongo aquí el ejemplo que yo tengohecho, que es con pedidos de cliente:
Primero que nada vamos a necesitar indexar los documentos de la tabla pedidoscli. En mi caso hice
una tabla nueva, llamada "pedidoscli_fts". Lo que hacemos esconcatenarle todos los campos como
texto y convertirlos a ts_vector:
CET TBEpddsl_t A
RAE AL eiocifs S
SLC ipdd,
EET deio
t_setr'pns'caec(oio') |
otvco(saih,olsecdg,') |
t_setr'pns'caec(evd,')|...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Tesis
  • Tesis
  • Tesis
  • Tesis
  • Tesis
  • Mi Tesis
  • Tesis
  • Tesis

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS