Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

126
Vistas
¿Debería quitar los dos puntos de las cadenas antes de crear un tsquery?

Estamos usando websearch_to_tsquery() en nuestra aplicación. Me di cuenta de que cuando se pasa una cadena "entre comillas" para encontrar una coincidencia exacta, interpretará un carácter de dos puntos ":" como una palabra, mientras que to_tsvector no lo hace. Esto evita que un tsquery coincida con un tsvector creado a partir de la misma cadena. El comportamiento existe en al menos Postgres 12 y 13. ¿Se esperaba esto?

Con dos puntos:

 SELECT websearch_to_tsquery('english', '"Design Patterns in C++: Behavioral - Observer to Visitor"') 'design' <-> 'pattern' <2> 'c' <2> 'behavior' <-> 'observ' <2> 'visitor'

Ahora con el colon eliminado:

 SELECT websearch_to_tsquery('english', '"Design Patterns in C++ Behavioral - Observer to Visitor"') 'design' <-> 'pattern' <2> 'c' <-> 'behavior' <-> 'observ' <2> 'visitor'

Tenga en cuenta la 'c' <2> 'behavior' frente 'c' <-> 'behavior' . Un tsvector creado a partir de la misma cadena con dos puntos no incluye dos puntos como palabra. Eso es lo que esperaría, pero esto significa que tsquery no coincidirá con un tsvector creado a partir de la misma cadena.

 SELECT to_tsvector('english', '"Design Patterns in C++: Behavioral - Observer to Visitor"') 'behavior':5 'c':4 'design':1 'observ':6 'pattern':2 'visitor':8

Documentación para websearch_to_tsquery :

Convierte texto a tsquery, normalizando las palabras según la configuración especificada o predeterminada. Las secuencias de palabras citadas se convierten en pruebas de frases. Se entiende que la palabra “o” produce un operador OR, y un guión produce un operador NOT; se ignoran otros signos de puntuación . Esto se aproxima al comportamiento de algunas herramientas de búsqueda web comunes.

¿Debería quitar los dos puntos de las cadenas antes de crear un tsquery? ¿Hay otros personajes que deban eliminarse?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Parece que este es un error que se corregirá en v14, pero se consideró que el cambio era invasivo para volver a versiones anteriores, porque depende de algunos otros cambios que no se estaban actualizando.

https://postgr.es/m/16592-70b110ff9731c07d@postgresql.org https://postgr.es/m/CAPpHfdv0EzVhf6CWfB1_TTZqXV_2Sn-jSY3zSd7ePH%3D-%2B1V2DQ%40mail.gmail.com

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda