utilizando soundex no firebird...

13/06/2006

9

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...


Responder

Posts

22/06/2006

Adrinei

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.


Responder

03/08/2007

Murilo-jau

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?


Responder

03/08/2007

Murilo-jau

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 !!!!!


Responder
vocês têm que se atentar se estão com a função SOUNDEX para o nosso idioma.


Responder

06/08/2007

Murilo-jau

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.


Responder
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

Murilo-jau

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 !


Responder
foi baseada naquela, mas não é a mesma.


Responder

06/08/2007

Murilo-jau

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 !


Responder
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.


Responder

06/08/2007

Murilo-jau

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 !


Responder

11/08/2007

Sremulador

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

Murilo-jau

Emerson, esta Soundex que vc me passou vc pretende distribuir, por pra download, comercializar ... ?


Responder
comercializar? nada! pode distribuir à vontade.


Responder

21/08/2007

Murilo-jau

Blz, Emerson!!


Responder