Juan José Santamaría Flecha escribió:
> On Wed, Dec 13, 2023 at 9:49 AM kernel <jucab...@gmail.com> wrote:
> 
> > Tengo un campo varchar que contiene descripciones de libros, me gustaría
> > poder buscar por diferentes palabras, pero pueden estar en orden
> > distinto o solo contener algunas, no se si hay algo desarrollado o tengo
> > que hacer varias busquedas
>
> Lo que quieres hacer suena a búsqueda Full Text:
> 
> https://www.postgresql.org/docs/current/textsearch.html

Usando websearch_to_tsquery() posiblemente.  Puede ser necesario adornar
con la extensión unaccent.  Si tienes, por ejemplo, el titulo del libro
en una columna y la descripción en una columna separada, puedes crear un
índice que agrupa las palabras de ambas columnas, de manera que una
búsqueda encuentre cuando las palabras aparezcan en cualquiera de los
dos.  También puedes darle "pesos" distintos a las palabras en cada
columna (función setweight), de manera que si una palabra de la búsqueda
aparece en el título, el resultado te muestre ese libro antes que un
libro para el cual la palabra ocurre en la descripción.

Generalmente es bueno saber en qué idioma están los textos, para que
puedas decidir qué "stemming" usar.  Mi impresión es que para el español
esto funciona bien, pero no me ha tocado implementar aplicaciones de
verdad usando esta funcionalidad.

-- 
Álvaro Herrera        Breisgau, Deutschland  —  https://www.EnterpriseDB.com/
"After a quick R of TFM, all I can say is HOLY CR** THAT IS COOL! PostgreSQL was
amazing when I first started using it at 7.2, and I'm continually astounded by
learning new features and techniques made available by the continuing work of
the development team."
Berend Tober, http://archives.postgresql.org/pgsql-hackers/2007-08/msg01009.php


Reply via email to