Texto libre de SQL y como
-
06-07-2019 - |
Pregunta
Si uso como '% fish%' se devuelve lo siguiente
AQUARIAN GOLDFISH FLAKES
pero si uso Contains ([Description], '" fish * "'), ¿no hay algo que pueda hacer?
Básicamente, quiero devolver cualquier cosa que tenga la palabra fish en cualquier parte.
Solución
¿Qué pasa con
CONTAINS([Description], '"fish"')
o
FREETEXT([Description], 'fish')
¿Eso te da algo?
La indexación de texto completo de SQL Server no admite la búsqueda de una expresión con un comodín inicial, por ejemplo. no puedes ir a un CONTAINS ([Description], '" * fish * "')
o algo por el estilo :-(
Lo que también podrías hacer es definir tu propio sinónimo para la búsqueda de texto completo, por ejemplo, define " pez de colores " ser sinónimo de " pescado " - de lo que deberías poder buscar solo " pescado " y también encontrar " peces de colores " ;.
SELECT (list of fields) FROM YourTable
WHERE CONTAINS([Description], 'FORMSOF(THESAURUS, fish)')
Echa un vistazo a Descripción de la indexación de texto completo en SQL Server : hay una buena sección un poco más abajo en el artículo sobre la modificación del tesauro de texto completo.
Marc