Jump to content
Fórum Script Brasil
  • 0

Buscar Qualquer Palavra


AWD
 Share

Question

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!

Edited by AWD
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...