Ir para conteúdo
Fórum Script Brasil
  • 0

Buscar Qualquer Palavra


AWD

Pergunta

Olá!

Eu estou fazendo um site de busca, mas quando é digitado na caixa de busca por exemplo Apostilas de ASP, o sistema procura exatamente essa frase e não as palavras dela.

Funciona assim se tiver um site com o nome Apostilas sobre ASP já não vai ser exibido pois não corresponde exatamente a frase buscada.

Alguém poderia me ajudar para que a busca seja feita por palavra, para que o resultado exibida tambem os resultados que não correspondem 100% a frase inteira e sim contenham alguma palavra da frase buscada.

O código que eu uso na resposta da busca é:

(..)

busca = request("buscar")

num = request("num")

categoria = request("categoria")

set ls = Server.CreateObject("ADODB.RecordSet")

if num = "*" then

s = "select * from busca where descricao LIKE '%"&busca&"%' OR endereco LIKE '%"&busca&"%' OR titulo LIKE '%"&busca&"%' OR categoria LIKE '%"&busca&"%'"

else

s = "select top " & num & " * from busca where descricao LIKE '%"&busca&"%' OR endereco LIKE '%"&busca&"%' OR titulo LIKE '%"&busca&"%' OR categoria LIKE '%"&busca&"%'"

end if

if categoria = "*" then

s = "select top " & categoria & " * from busca where descricao LIKE '%"&busca&"%' OR endereco LIKE '%"&busca&"%' OR titulo LIKE '%"&busca&"%'"

end if

ls.Open "select Count(*) as conta from busca where descricao LIKE '%" & busca & "%' OR endereco LIKE '%" & busca & "%' OR titulo LIKE '%" & busca & "%'", cn

(...)

Se alguém souber como eu faço para que a busca exiba também os resultados que contenham apenas uma ou mais palavras da frase buscada ajudaria muito.

Qualquer ajuda é bem vinda.

Valeu!

Editado por AWD
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Guest Ajudando por gostar de ajudar

AWD olá.

Bom eu já vi muito isto que você está falando,porém em funções, o famoso + = espaço, desta forma as palavras podem ser filtradas e separadas e a busca pode ser feita separadamente, um exemplo:

Apostilas de ASP, o resultado no filtro de sua função ficaria assim;

Apostilas+de+ASP, para separar ou manter juntos, são duas opções, separar ou manter a frase original, ou seja, um sistema de busca sobre loop na palavra chave, dou –lhe um exemplo:

Apostila

String1

Apostilas de

String 2

Apostilas de ASP

String 3

E assim por diante, a diferença será você colocar tudos isto em uma case onde indicará a melhor string ao caso, o sinal de mais será onde uma segunda função separará as palavras ou não para indicar a melhor string, o segredo é justamente o que você falou, se não encontrar nada, próxima case, até encontrar algo, ai vem o truque, na pagina de exibirão da consulta, você tem que ter duas formas de exibição, uma para frases inteiras e outra para parcial, sem o usuário perceber, para isto a busca deve ser feita no conteúdo e não no titulo em si, as ambas, porém cada coisa que você coloca a mais o script vai complicando.

Mas acredito que deu para dar uma boa dica para você sobre o assunto, e função sobre função e solicitar a string SQL em case antes de sua consulta, desta forma acredito que dará certo seu script.

Boa sorte.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...