Like em campo text ( SQL )
Olá pessoal estou fazendo uma consulta em um campo text em banco SQL 7, uso o like para fazer esta consulta.
Resumindo estou pequisando uma palavra dentro de uma campo text, más fica muito lento e estou querendo mudar este tipo de consulta, fiquei sabendo que o SQL tem um comando chamado full text, mas nunca usei.
Será que alguem pode me ajudar ??
Muito obrigado.
Marcelo
Curtidas 0
Respostas
Eriley Barbosa
08/10/2010
http://msdn.microsoft.com/pt-br/library/cc564872.aspx
GOSTEI 0
Marcelo
08/10/2010
Eliley, vi a matéria .... muito boa, más uso atualmente o sql 7.0, ele tem a opção de full text mas todas as opções estão desabilitadas.
Tentei rodar a instalação do sql para ver se tenho alguma opção de instalar, mas nada, será que vc tem alguma idéia para eu resolver isso.
Muito obrigado, Marcelo.
GOSTEI 0
Eriley Barbosa
08/10/2010
Achaei só para o SQLServer 2000, mas vê se te ajuda:
http://www.athens.com.br/manuais/Produtos/PDF/InstalacaoSQLServer2000.pdf
GOSTEI 0
Marcelo
08/10/2010
Estou instalando o SQL2000 no win XP, eu só tenha a opção de instalar como Client Tools Only,
será que tem alguma coisa p/ fazer para habilitar a opção server and client tools ?
Muito Obrigado.
GOSTEI 0
Marcelo
08/10/2010
Olá amigos, consegui montar o Full Text no SQL 2000, más estou com um problema...
Quando faço esta consulta não da erro --> select * from tmplj where contains(descricao, '"AGESUL"').
Más quando a palavra pesquisa tem espaços dar um erro.
EX:select * from tmplj where contains(descricao, '"A G E S U L"').
Erro:A clause of the query contained only ignored words.
Será que algue pode me ajudar...
Muito obrigado.
GOSTEI 0
Pietro Braga
08/10/2010
está usando '"AGESUL"' com aspas duplas entre aspas simples? :S Não seria apenas "AGESUL". Somente com aspas duplas?
GOSTEI 0
Pietro Braga
08/10/2010
Desconsidere meu post anterior, agora entendi a pergunta. :D
GOSTEI 0
Wilson Junior
08/10/2010
Porque você não utiliza o LIKE? Pois assim você poderia substituir os espaços pelo caracter '%', considerando que cada espaço é um separador de palavras.
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Pietro Braga
08/10/2010
Olá amigos, consegui montar o Full Text no SQL 2000, más estou com um problema...
Quando faço esta consulta não da erro --> select * from tmplj where contains(descricao, '"AGESUL"').
Más quando a palavra pesquisa tem espaços dar um erro.
EX:select * from tmplj where contains(descricao, '"A G E S U L"').
Erro:A clause of the query contained only ignored words.
Será que algue pode me ajudar...
Muito obrigado.
Quando faço esta consulta não da erro --> select * from tmplj where contains(descricao, '"AGESUL"').
Más quando a palavra pesquisa tem espaços dar um erro.
EX:select * from tmplj where contains(descricao, '"A G E S U L"').
Erro:A clause of the query contained only ignored words.
Será que algue pode me ajudar...
Muito obrigado.
Andei lendo sobre esa instrução, é uma pena não ter em outros bancos, é muito interessante.
Pelo que entendi ficaria assim:
[code]
select * from tmplj where contains(descricao, ' "A" OR "G" OR "E" OR "S" OR "U" OR "L" ');
A não ser que esteja querendo procurar por uma frase.
GOSTEI 0
Marcelo
08/10/2010
A palavra que estou pesquisando é 'A G E S U L' é apenas uma palavra não é varias letras, o correto é ela ser escrita sem os espaços 'AGESUL' más não depende da empresa escrever assim ela já receber o material em arquivo texto.
Muito obrigado.
GOSTEI 0
Marcelo
08/10/2010
Olá Wilson, muito obrigado pela dica, más eu já uso o like, mas como pesquiso em campo text fica muito lento, então estou tentando implementar para o full text, e estou encontrado algumas dificuldades.
Muito Obrigado..
GOSTEI 0
Pietro Braga
08/10/2010
Poisé mas o banco irá entender como se fossem palavras separadas. Pode tentar dessa maneira...
select * from tmplj where contains(descricao, "A ~ G ~ E*")
Não sei se funciona com mais de três letras (palavras).
select * from tmplj where contains(descricao, "A ~ G ~ E*")
Não sei se funciona com mais de três letras (palavras).
GOSTEI 0
Pietro Braga
08/10/2010
Retire o * ao lado do E.
GOSTEI 0
Wilson Junior
08/10/2010
O que você pode fazer é retirar os espaços, mas isto pode ficar perigoso no casa de você ter duas palavras (exemplo: "MEU TESTE"), pois neste caso você teambém retiraria os espaços.
Deve ser analisado se será efetuada a pesquisa com apenas uma palavra ou mais.
Espero ter colaborado.
Deve ser analisado se será efetuada a pesquisa com apenas uma palavra ou mais.
Espero ter colaborado.
GOSTEI 0
Marcelo
08/10/2010
É pelo que entendi o full text quando ele encontra uma palavra unica separada ele separa ela da frase.
Exemplo: Paulo de Souza P Coelho:
Ele não pesquisa o nome inteiro, ele pesquisa assim
1 - Paulo de Souza
2 - P
3 - Coelho
Ele teria que entender que pesquisar este nome inteiro, e eu estou colocando o nome entre " " aspas duplas, será que tem algum coisa que posso fazer ??
Muito obrigado pessoal.
GOSTEI 0
Pietro Braga
08/10/2010
Na verdade ele procura por frases também, se for procurar por palavras seria:contains(campo, ' AGESUL ") e no caso de frases põe-se entre " a frase inteira:
contains(Campo, ' "A G E S U L" ') // que é como você está fazendo, ou seja, está como em todos os exemplos que vi:
Tente diminuir o número de palavras. EX: " A G E S", não sei se há um limite para a pesquisa.
contains(Campo, ' "A G E S U L" ') // que é como você está fazendo, ou seja, está como em todos os exemplos que vi:
Tente diminuir o número de palavras. EX: " A G E S", não sei se há um limite para a pesquisa.
GOSTEI 0
Marcelo
08/10/2010
E ai amigos será que alguém tem alguma dica ....
Obrigado.
GOSTEI 0
Marcelo
08/10/2010
Consegui resover é só colocar a palavra entre aspas e *
"*MEU NOME*"
GOSTEI 0