utilizando soundex no firebird...
13/06/2006
15
Olá Pessoal,
Fiz os procedimento para o uso da UDF mv_soundex, conforme está na revista DBFreeMagazine 06. Está ocorrendo alguns problemas. Registrei a udf no firebird. Estou fazendo um teste com um campo de uma tabela só para teste, a tabela tem cerca de 50000 registros.
Quando faço a seguinte consulta abaixo ele me retorna todos os registro no campo a sequência: ´aaa´ .
O que pode estar de errado, baixei a dll do site firebase.
select mv_soundex(nome) as Nome_Soundex
from membros
Obrigado Thiago Pedro...
Fiz os procedimento para o uso da UDF mv_soundex, conforme está na revista DBFreeMagazine 06. Está ocorrendo alguns problemas. Registrei a udf no firebird. Estou fazendo um teste com um campo de uma tabela só para teste, a tabela tem cerca de 50000 registros.
Quando faço a seguinte consulta abaixo ele me retorna todos os registro no campo a sequência: ´aaa´ .
O que pode estar de errado, baixei a dll do site firebase.
select mv_soundex(nome) as Nome_Soundex
from membros
Obrigado Thiago Pedro...
Responder
Posts
22/06/2006
Se você tem uma tabela com 50 mil registros acho que seria melhor criar um campo para gravar este nome já com o soundex.
CREATE TRIGGER TRG_TESTE FOR TBL_TESTE
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
BEGIN
-- Nome fonético
NEW.NOMEFONETICO = UDF_SOUNDEX(NEW.NOME);
END
Imagine que para cada consulta que você aplicar sobre esta tabela o banco terá que converter 50 mil nomes para comparar.
CREATE TRIGGER TRG_TESTE FOR TBL_TESTE
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
BEGIN
-- Nome fonético
NEW.NOMEFONETICO = UDF_SOUNDEX(NEW.NOME);
END
Imagine que para cada consulta que você aplicar sobre esta tabela o banco terá que converter 50 mil nomes para comparar.
Responder
03/08/2007
Ola, estou usando UDF SOUNDEX baixado do site:
www.comunidade-firebird.org
Instalei sem problemas.
Fiz meu código seguindo o Leiame que vem junto com a dll :
´select * from ISO
where soundex(NOME_ISO) = SOUNDEX(´´´+Edit1.Text+´´´)´)´
MAS ele não retorna valor algum !
Por exemplo tenho cadastrado :
Luis Luiz
e buscando por Luis ou Luiz o resultado é o mesmo, NADA!
e erro não está dando no código.
Alguem me ajuda?
www.comunidade-firebird.org
Instalei sem problemas.
Fiz meu código seguindo o Leiame que vem junto com a dll :
´select * from ISO
where soundex(NOME_ISO) = SOUNDEX(´´´+Edit1.Text+´´´)´)´
MAS ele não retorna valor algum !
Por exemplo tenho cadastrado :
Luis Luiz
e buscando por Luis ou Luiz o resultado é o mesmo, NADA!
e erro não está dando no código.
Alguem me ajuda?
Responder
03/08/2007
pts corrigi, que distração a minha:
select * from ISO
where soundex(NOME_ISO) like SOUNDEX(´´¬´+Edit1.Text+´¬´´)
Agora ele acha o nome buscado , mas o problema é que a função SOUNDEX não está ocorrendo. Como se fosse um simples like.
Será que usando o LIKE eu ´inibo´ a função SOUNDEX ?
Sem o like:
where soundex(NOME_ISO) = soundex(´´´+Edit1.text+´´´)
ele não retorna valor algum !!!!!
select * from ISO
where soundex(NOME_ISO) like SOUNDEX(´´¬´+Edit1.Text+´¬´´)
Agora ele acha o nome buscado , mas o problema é que a função SOUNDEX não está ocorrendo. Como se fosse um simples like.
Será que usando o LIKE eu ´inibo´ a função SOUNDEX ?
Sem o like:
where soundex(NOME_ISO) = soundex(´´´+Edit1.text+´´´)
ele não retorna valor algum !!!!!
Responder
03/08/2007
vocês têm que se atentar se estão com a função SOUNDEX para o nosso idioma.
Responder
06/08/2007
Como faço isto ? não entendi direito.
E fazendo mais alguns teste aqui , Alessandro e Alesandro deu certo na busca , ele acha os dois sendo buscado por S ou SS, então acho que isto mesmo que vc falou Emerson. S e Z , C e Ç não esta funfando. Só S e SS.
E fazendo mais alguns teste aqui , Alessandro e Alesandro deu certo na busca , ele acha os dois sendo buscado por S ou SS, então acho que isto mesmo que vc falou Emerson. S e Z , C e Ç não esta funfando. Só S e SS.
Responder
06/08/2007
tente com [url=http://files-upload.com/418393/SoundexBR.rar.html]esta UDF[/url] que eu mesmo criei. se encontrar algum erro, por favor reporte para que eu possa corrigir.
Responder
06/08/2007
Ola, Emerson, baixei o UDF que vc criou e irei testala sim, só uma coisa, ela não é a mesma que esta UDF que está na Comunidade do Firebird ?
Link :
http://www.comunidade-firebird.org/modules.php?name=Downloads&d_op=viewdownload&cid=6&orderby=titleD
Vos testa sim.
Valeu ai pela atenção !
Link :
http://www.comunidade-firebird.org/modules.php?name=Downloads&d_op=viewdownload&cid=6&orderby=titleD
Vos testa sim.
Valeu ai pela atenção !
Responder
06/08/2007
Emerson é o seguinte, testei a sua UDF , algumas palavras ele encontra tranquilo como de Maiúsculas - minúsculas, acentuo - sem acentuo,
S - SS ; C - Ç ; W - V ;
mas CH - X não está rodando ( só resulta no mesmo nome buscado)
o S - Z que está estranho :
No caso de JOSÉ - JOZÉ , a busca encontra os dois.
Mas no caso de LUIZ - LUIS é retornado o mesmo nome buscado. Mas quando busquei por acaso LASO - LASSO a busca encontra o tal LUIZ .
Por enquanto isto foi o que eu encontrei !
S - SS ; C - Ç ; W - V ;
mas CH - X não está rodando ( só resulta no mesmo nome buscado)
o S - Z que está estranho :
No caso de JOSÉ - JOZÉ , a busca encontra os dois.
Mas no caso de LUIZ - LUIS é retornado o mesmo nome buscado. Mas quando busquei por acaso LASO - LASSO a busca encontra o tal LUIZ .
Por enquanto isto foi o que eu encontrei !
Responder
06/08/2007
tente com [url=http://files-upload.com/418800/SoundexBR.rar.html]esta versão[/url]
1- corrigi o problema do CH - X
2- no caso do S - Z que está correto:
JOSÉ - JOZÉ são fonéticamente idênticos, pois o S tem som de Z nesse caso.
3- corrigido o caso entre LUIZ - LUIS
4- a comparação entre LASO e LASSO é um caso específico, porque em LASO o S tem som de Z, porém em LASSO o SS tem som de S, o que indica incompatibilidade fonética.
1- corrigi o problema do CH - X
2- no caso do S - Z que está correto:
JOSÉ - JOZÉ são fonéticamente idênticos, pois o S tem som de Z nesse caso.
3- corrigido o caso entre LUIZ - LUIS
4- a comparação entre LASO e LASSO é um caso específico, porque em LASO o S tem som de Z, porém em LASSO o SS tem som de S, o que indica incompatibilidade fonética.
Responder
06/08/2007
Rodou legal , as correções funcionaram.
Vou continuar usando esta ultima versão desta UDF sua ! blz ?
Se eu encontrar mais alguma coisa eu te passo !
Vou continuar usando esta ultima versão desta UDF sua ! blz ?
Se eu encontrar mais alguma coisa eu te passo !
Responder
11/08/2007
tente com [url=http://files-upload.com/418800/SoundexBR.rar.html]esta versão[/url]
1- corrigi o problema do CH - X
2- no caso do S - Z que está correto:
JOSÉ - JOZÉ são fonéticamente idênticos, pois o S tem som de Z nesse caso.
3- corrigido o caso entre LUIZ - LUIS
4- a comparação entre LASO e LASSO é um caso específico, porque em LASO o S tem som de Z, porém em LASSO o SS tem som de S, o que indica incompatibilidade fonética.
você poderia envir novamente pro fileshare...
Responder
20/08/2007
Emerson, esta Soundex que vc me passou vc pretende distribuir, por pra download, comercializar ... ?
Responder
Clique aqui para fazer login e interagir na Comunidade :)