• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

nuno_couto

Sistema de pesquisa

7 mensagens neste tópico

Num sistema de pesquisa de artigos, caso seja usado simplesmente o comando "LIKE", caso um escreva por exemplo "metallica", todos os produtos que contenham essa palavra no título vão surgir, mas se utilizar o termo "cd metallica", aí já só encontra os que tiverem especificamente o termlo como ele foi escrito e não as palavras cd + metallica.

Alguem tem um código que aconselhe para tornar as pesquisas eficazes?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu já fiz um pesquisador mas é dificil explicar :neutral:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Num sistema de pesquisa de artigos, caso seja usado simplesmente o comando "LIKE", caso um escreva por exemplo "metallica", todos os produtos que contenham essa palavra no título vão surgir, mas se utilizar o termo "cd metallica", aí já só encontra os que tiverem especificamente o termlo como ele foi escrito e não as palavras cd + metallica.

Alguem tem um código que aconselhe para tornar as pesquisas eficazes?

Devias reformular a tua pergunta, o que tu queres é saber explorar bases de dados e não fazer um sistema de pesquisa de artigos.

Existem várias fórmas de usar o like e existe outra funcionalidade disponível em vários SGBDs que te pode ajudar: "full text search".

Lê este tópico pois isso já aqui foi debatido: http://www.portugal-a-programar.pt/index.php?showtopic=2973

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já estive a ver esse tópico e há algo que pode interessar.

Se eu fizer a pesquisa com o comando LIKE %cd%metallica%, basicamente o sistema vai pesquisar todos os tópicos que contenham os termos cd e metallica em simultaneo certo?

Assim sendo, se um user pesquisar cd metallica, bastará transformar os espaços em "%" e depois fazer LIKE %$pesquisa% (o que resulta em LIKE %cd%metallica%)

Isto é correcto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já estive a ver esse tópico e há algo que pode interessar.

Se eu fizer a pesquisa com o comando LIKE %cd%metallica%, basicamente o sistema vai pesquisar todos os tópicos que contenham os termos cd e metallica em simultaneo certo?

Sim, mas apenas por essa ordem, ou seja, não apanha metallica e cd, apenas cd e metálica.

Assim sendo, se um user pesquisar cd metallica, bastará transformar os espaços em "%" e depois fazer LIKE %$pesquisa% (o que resulta em LIKE %cd%metallica%)

Isto é correcto?

Sim.

Mas tem atenção à ordem das palavras como referi acima.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E há algum comando para pesquisar independentemente da ordem? Ou seja, encontrar cd metallica ou metallica cd?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No pesquisador que eu criei quando a pessoa pesquisava por alguma coisa exemplo:  "tutorial de php" eu dividia a pesquisa em varias palavras nesse caso "tutorial" seria a palavra 1  "de"  seria a 2 (......) e depois aquilo pesquisava na mysql mais ou menos assim:

mysql_query("SELECT * FROM tabela WHERE pesquisa LIKE '%".$palavra[1]."%' OR LIKE '%".$palavra[2]."%' OR LIKE '%".$palavra[3]."%' ....");

Algo mais ou menos assim... Espero que te ajude!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora