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

Como fazer um busca assim


marvi

Pergunta

Olá pessoal, tem um sistema de busca em ASP e que tem um SQL assim:

SELECT * FROM noticias WHERE titulo LIKE '%"& varbusca &"%' OR texto LIKE '%"& varbusca &"%' ORDER BY alteracao DESC

Como faço para ele pegar qualquer coisa e não só palavras certas, tipo:

Tem uma matéria assim:

Candeias será a sede da realização da II Conferência das Cidades

E se digito "Candeias" ele chama essa matéria. Mas, se digito "2º Conferência das cidades de Candeias" ele não encontra nada, por que? Ele poderia considerar alguma coisa dentro da frase "2º Conferência das cidades de Candeias", considerar pelo menos "candeais" e tal e chamar as matérias que tenha a palavra "candeias" no meio ou coisa assim, como o google faz.

Como resolver isso?

Desde já, agradeço!

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

6 respostass a esta questão

Posts Recomendados

  • 0
Talvés dividindo a variável com splits e/ou mids e colocando tudo em um array... depois usar o arrau para comparativo com o bd...

[]'s

Fiz com essa programação:

dim busca, onde, pesq, sql
busca=split(request("busca"),chr(32))

for x = 0 to Ubound(busca)
 if x > 0 then
    onde=onde + " and "
 end if
 pesq=busca(x) 
 onde=onde+"titulo like '%" & pesq & "%'"
next

SQL = "SELECT * FROM noticias WHERE " & onde & ""
set rsbusca = db.execute(SQL)

OBS: Antes quando digitava somente Conferência das cidades de Candeias, não aparecia nada. Mas, agora, com esse código acima, se digito novamente só Conferência das cidades de Candeias ele chama corretamente a matéria, ótimo. Já tive um progresso aí.

Porém, se digito 2º Conferência das cidades de Candeias, ele ainda não aparece nada. O problema está nesse , pois quando o coloco no campo do busca é que dar esse problema.

Alguém tem como sanar essa questão? Acredito que depois que ele reconhecer isso (esse ), vai está ok.

Há! E se invento também de pesquisar tipo: Conferência das cidades de Candeias Bahia. Ele também não aparece nada, pois não existe esse "Bahia", tem que existir uma maneira de ignorar as frases que ele não acha e considerar o que acha.

Entenderam?

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

  • 0

Kara, se você estiver usando MySQL, procura no fórum de MySQL aqui por "Full-Text", e no Google por "Full-Text MySQL".

É uma parada bem interessante e acho que pode te ajudar.

Não te passo nenhum exemplo, porque conheci isso esses dias e ainda não domino bem, e também não sei se você está usando MySQL. Mas se estiver usando, isso deve te ajudar com seu problema.

Abraço.

Link para o comentário
Compartilhar em outros sites

  • 0

Estou usando MYSQL sim.

Vou procurar por Full-Text aqui? Vou ver...

Aproveitando, vi um exemplo em SQL assim:

* tenho uma tabela "x" com dois campos ("codigo" e "palavras");

1 - casa

2 - carro

3 - fd...

* o usuário escreve em seu anúncio a seguinte sentença:

"Compro carro antigo", ou ainda,

"Vou ao casamento da fulana"

para ter resultado mais abrangente:

SELECT * FROM TabelaX WHERE palavras LIKE '%Compro%carro%antigo%'

Será que funciona? A questão é que recebo numa variavel a busca:

varbusca=request("busca")

varbusca tem o valor "Compro carro antigo"

Como fazer que esse SQL divida assim:

SELECT * FROM TabelaX WHERE palavras LIKE '%Compro%carro%antigo%'

Seria uma solução?

Fiz assim:

varbusca=request("busca") (que tem valor 2º Conferência das cidades de Candeias)

varbusca=replace(varbusca," ","%")

SQL = "SELECT * FROM noticias WHERE titulo LIKE '%"& varbusca &"%' ORDER BY alteracao DESC"

set rsbusca = db.execute(SQL)

Mas também não funciona como quero, igual ao google

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
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...