Leobreda.net

Web, .Net,
SQL, Cloud...

Implementando ferramenta de busca em seu site

Realce os termos encontrados e encontre palavras sem acentos no resultado da busca

Este POST é ideal para quem está implementando alguma ferramenta de busca, semelhante à esta aqui que eu criei no Instituto Chiavenato.

 

1. Diferenças entre palavras com e sem acentuação

Digamos que você precisa trazer resultados SQL os usuários que mora no Estado de São Paulo.

SELECT * FROM USUARIOS WHERE ESTADO='São Paulo'

 

Mas e pra quem mora em cidade como Sao Paulo, sao paulo (em minúsculo mesmo), sáo paulo, são páulo, etc ?

Para isso existe o Collation LATIN1_GENERAL_CI_AI, na qual traz os resultados, indiferente se os mesmos possuem acentos ou não.

SELECT * FROM USUARIOS WHERE ESTADO COLLATE LATIN1_GENERAL_CI_AI LIKE 'São Paulo'

 

Este método é ideal mesmo quando já estabeleceu os Collations na contrução das tabelas.

 

2. O realce nas buscas

O usuário digitou "Lorem Ipsum" em sua ferramenta de busca. Surge então o seguinte resultado:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum dolor sit amet, consectetuer adipiscing elit.

 

Para isso, é necessário saber sério???kkk o que o usuário digitou. Depois, dar um Replace com os parâmetros 1, -1, 1 na qual utiliza-se para não diferenciar caracteres

maiúsculos de caracteres minúsculos.

<%

DIGITADO = "Lorem Ipsum"

TEXTO = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum dolor sit amet, consectetuer adipiscing elit."

 

TEXTO_FINAL = Replace(TEXTO, DIGITADO, "<span style=""font-weight:bold;background-color:#ffff00;padding:1px 0px;"">" & DIGITADO & "</span>", 1, -1, 1)

 

Response.write TEXTO_FINAL

%>

 

Eu só ainda não achei uma solução para realçar palavras com ou sem acentuação.




Acessar todos os artigos »