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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top