2014

EneFebMarAbr
MayJunJulAgo
SepOctNovDic

2013

EneFebMarAbr
MayJunJulAgo
SepOctNovDic

más...

2011

EneFebMarAbr
MayJunJulAgo
SepOctNovDic

2010

EneFebMarAbr
MayJunJulAgo
SepOctNovDic

2009

EneFebMarAbr
MayJunJulAgo
SepOctNovDic

2008

EneFebMarAbr
MayJunJulAgo
SepOctNovDic

2007

EneFebMarAbr
MayJunJulAgo
SepOctNovDic

2006

EneFebMarAbr
MayJunJulAgo
SepOctNovDic

2005

EneFebMarAbr
MayJunJulAgo
SepOctNovDic

2004

EneFebMarAbr
MayJunJulAgo
SepOctNovDic

2003

EneFebMarAbr
MayJunJulAgo
SepOctNovDic

Fotolog

A través del espejo
2010-10-12: A través del espejo
¡La radio habla en binario!
2010-10-10: ¡La radio habla en binario!
Gigaminx (regalo por mi cumple)
2010-09-16: Gigaminx (regalo por mi cumple)
Trini en bici
2010-09-05: Trini en bici
Valporquero
2010-08-28: Valporquero
Mi bici nueva
2010-08-22: Mi bici nueva
Boda de Mario y Ana
2010-08-13: Boda de Mario y Ana
De cañones en Guara
2010-08-07: De cañones en Guara
Trini y Mari en Marbella
2010-08-05: Trini y Mari en Marbella
Trini y Chelo en Tabarca
2010-08-03: Trini y Chelo en Tabarca
Valid XHTML 1.1
Acceder
Etiquetas: SQL cómo
Para aprender cómo implementar búsquedas sencillas en campos de texto de una base de datos PostgreSQL hay que utilizar dos funciones: to_tsvector() y plainto_tsquery(), y un operador binario, @@.
  • to_tsvector() convierte una lista de palabras en una lista de lexemas significativos con las que poder hacer operaciones de búsqueda. Ejemplo:
    postgres=> SELECT to_tsvector('spanish','cómo cazar un león');
           to_tsvector
    --------------------------
     'caz':2 'com':1 'leon':4
    (1 row)
    

    Para evitar tener que estar poniendo 'spanish' continuamente, si nuestra base de datos tiene información únicamente en español, podemos cambiar el lenguaje de búsquedas por defecto de la base de datos, con:

    ALTER DATABASE cuevasysimas set default_text_search_config = 'spanish';
    

  • plainto_tsquery() se utiliza para convertir una cadena en un patrón de búsqueda
  • @@ se usa para comprobar si se encuentra un patrón de búsqueda en una lista de lexemas:
    postgres=> SELECT to_tsvector('cómo cazar un león') @@ plainto_tsquery('cazando leones');
     ?column?
    ----------
     t
    (1 row)
    
Por ejemplo, si tenemos una tabla de libros, con las columnas 'titulo' y 'resumen', y queremos mostrar el título de los libros que concuerdan con una búsqueda en el resumen, podemos hacer:
postgres=> SELECT titulo FROM libro WHERE to_tsvector(resumen) @@ plainto_tsquery('palabra');

Nuevo comentario

Por favor, escribe tu nombre y lo que quieras decir :-)

Nombre:
Comentario: