Usuário com melhor resposta
Procedure - Pesquisar string com várias palavras

Pergunta
-
Pessoal, boa tarde...tudo bom?
Tenho um problema que é novo pra mim, mas que o pessoal daqui já deve ter passado por isso.
Tenho uma string que o usuário digitou contendo algumas palavras. Preciso que a query faça uma pesquisa utilizano essa string que o usuário digita.
a questão é: O usuário pode digitar mais de uma palavra e eu preciso que retorne as ocorrências onde todas as palavras contidas nessa string se encontram.
Tipo, digitei "código civil", preciso que retorne todos os registros onde conste as palavras "código" e "civil", mas tem que ter as duas. E nem sempre são palavras seguidas, então tem que rolar um "AND" em cada palavra.
Tentei usar um contains dessa maneira, tipo montando na aplicação a separação das palavras com um AND, concatenando assim('ajuda AND presidente'), mas me retornou uma mensagem de erro:
SELECT
texto FROM palavrasTextoWHERE
CONTAINS(texto, 'ajuda AND presidente')E deu a seguinte mensagem:
Msg 7601, Level 16, State 2, Line 2
Cannot use a CONTAINS or FREETEXT predicate on table 'palavrasTexto' because it is not full-text indexed.
Vocês poderiam sugerir alguma solução? Não sei se esse é uma coisa primária, mas não to conseguindo.
Vlw, pessoal!
binhoalves!
Respostas
-
Oi Binho,
Sugiro dar uma olhada no artigo abaixo:
Understanding SQL Server Full-Text Indexing
http://www.developer.com/db/article.php/3446891Qual é o seu SQL Server ?
[ ]s,
Gustavo Maia Aguiar
Todas as Respostas
-
Boa Tarde binhoalves,
O uso de predicados como CONTAINS e FREETEXT necessita de uma estrutura de indexação textual especial chamada Full Text Index. Caso você não tenha essa estrutura isso não será possível. Me parece que sua tabela não possui esse índice. É necessário que você o crie antes de rodar sua consulta.
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com
-
-
Oi Binho,
Sugiro dar uma olhada no artigo abaixo:
Understanding SQL Server Full-Text Indexing
http://www.developer.com/db/article.php/3446891Qual é o seu SQL Server ?
[ ]s,
Gustavo Maia Aguiar
-
-