Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

webfuture

Como fazer esta busca funcionar?

Recommended Posts

Galera, preciso efetuar uma busca da seguinte maneira, digamos que o usuário busque por "Programadores no Fórum", gostaria que o sistema se comportasse da seguinte maneira, ele buscasse por: "Programadores no Fórum", quebrasse a palavra "Programadores no Fórum" retirando "Programadores" e "Fórum" e também buscasse pelas duas palavras no campo determinado, ou seja, de uma forma ou de outra ele encontra a informação, talvez precisa e não exatamente o que ele digitou.

 

tenho abaixo o código de exemplo que quebra a palavra:

 

varbusca = Request("search")arr= split(varbusca,"no")for x = 0 to ubound(arr)if x =0 thenvarsql = " (campo1) like '%" & (arr(x)) & "%' or (campo2) like '%" & (arr(x)) & "%' "elsevarsql = varsql & "or (campo1) like '%" & (arr(x)) & "%' or (campo2) like '%" & (arr(x)) & "%' "end ifnextsql = "SELECT campos FROM tabela WHERE ("& varsql &") "

Este é um exemplo, que funciona somente com a palavra "no", se isto for viável (gostaria de opiniões tb..eheh) penso em fazer isto para palavras como: "de, em, para, com, etc", minha dúvida é, como fazer esta busca funcionar ou seja, mesclar estas buscas em uma só para que ele não fique muito lento?

 

Vocês acham que isto é viável ? Pelo menos acho que quem busca algo tem mais chances de encontrar o que procura, pois as vezes um registro que tenha em algum lugar do texto "Programadores no Fórum" e um que tenha "Programadores" e "fórum" no texto, talvez contenha o que usuário procura.

 

O que vocês acham?

 

Xavier

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... idéia...Vou citar funções em php, daí você veja as similares em tua linguagem.Quebra a palavra/Joga cada uma delas num array (funcao explode),usando como separador os espações em branco, daí neste caso você vai ter "Programador","do" e "fórum" como palavras. Pode criar uma lógica para varrer este array e apagar os itens iguais "do","da","de","a","e", etc.Feito isto você terá "Programador" e "fórum". Daí sim faz um loop para ler este array final e montar as linhas com os like '%%'.Acho que por aí é um caminho... talvez nao seja o melhor, mas... está aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.