.NET, Oracle e Busca Fonética

436 views
Skip to first unread message

Ygor Thomaz

unread,
Jun 22, 2011, 7:54:56 PM6/22/11
to
Saudações,

Estou trabalhando com uma empresa e eles implementaram uma busca fonetica
que grava em outra tabela para cada palavra que pode ser buscada as situações
onde a escrita poderia estar errada/certa. Por exemplo:

Abacaxi -> GRAVA() -> abacachi, abacasi, abacaxi, etc...

Isso é tenho uma tabela apenas para buscar estas palavras. Achei isso
muito tosco!

Alguém já trabalho com busca fonetica e implementou de outra forma ?

Tecnologias do projeto: .NET, C# e Oracle.

Abraços


Best regards,

--
Ygor Thomaz
Certified ScrumMaster (CSM)
Certified Scrum Product Owner (CSPO)
Website: http://www.ygorthomaz.com/
"With Great Power Comes Great Responsibility." Uncle Ben, Spiderman

Ricardo Borges

unread,
Jun 23, 2011, 12:53:13 AM6/23/11
to dotn...@googlegroups.com
Já vi um sistema implementando um algoritmo +/- como este descrito abaixo, deve funcionar um pouco melhor que essa abordagem deles:

http://en.wikipedia.org/wiki/Soundex
http://www.blackwasp.co.uk/Soundex.aspx

Será preciso fazer os devidos ajustes para a fonética da língua portuguesa.

Ps.: Eu colocaria um throw new exception toda vez que um cara digitasse abacachi.... :P


--
==============================
Comunidade de desenvolvedores Dot Net no Brasil

WebSite: www.dotnetbr.com

E-mail do Grupo: dotn...@googlegroups.com
==============================



--
Ricardo

Rafael Amorim

unread,
Jun 23, 2011, 10:59:38 AM6/23/11
to dotn...@googlegroups.com
Como o @Ricardo disse, acho q o soundex poderia te ajudar, acredito que o oracle já implemente isso... 

No SQL Server eu sei que tem, um tempo atras recebi por email essa dica... No SQL Server o exemplo seria assim:

Uma consulta por Maranhão

Essa query não retorna nada:

SELECT * FROM PIVUF WHERE DESUF = 'Maranhao'

 

Todas essas consultas abaixo retornam somente a linha correspondente ao estado Maranhão:

SELECT * FROM PIVUF WHERE SOUNDEX(DESUF) = SOUNDEX('Maranhao')

SELECT * FROM PIVUF WHERE SOUNDEX(DESUF) = SOUNDEX('Marannao')

SELECT * FROM PIVUF WHERE SOUNDEX(DESUF) = SOUNDEX('Maranao')

SELECT * FROM PIVUF WHERE SOUNDEX(DESUF) = SOUNDEX('Marana')

SELECT * FROM PIVUF WHERE SOUNDEX(DESUF) = SOUNDEX('Maarana')

SELECT * FROM PIVUF WHERE SOUNDEX(DESUF) = SOUNDEX('Maaranha')

SELECT * FROM PIVUF WHERE SOUNDEX(DESUF) = SOUNDEX('Mranha')

SELECT * FROM PIVUF WHERE SOUNDEX(DESUF) = SOUNDEX('Mranh')


Talvez o exemplo te ajude a encontrar uma solução para Oracle.

abraço!

Rafael Amorim

Ygor Thomaz

unread,
Jun 23, 2011, 3:44:16 PM6/23/11
to dotn...@googlegroups.com
Maravilha senhores,

Segunda-Feira irei testar.


Best regards,

--
Ygor Thomaz
Certified ScrumMaster (CSM)
Certified Scrum Product Owner (CSPO)
Website: http://www.ygorthomaz.com/
"With Great Power Comes Great Responsibility." Uncle Ben, Spiderman

Pedro Neto

unread,
Jun 22, 2011, 9:53:15 PM6/22/11
to dotn...@googlegroups.com
Não sei, mas talvez um algoritmo soundex http://en.wikipedia.org/wiki/Soundex resolva seu problema. Além disso, tem alguns SGBD que já possuem este recurso, não sei se é o caso do Oracle.

Em 22 de junho de 2011 20:54, Ygor Thomaz <ygo...@gmail.com> escreveu:
Saudações,

Estou trabalhando com uma empreesa e eles implementaram uma busca fonetica
--
==============================
Comunidade de desenvolvedores Dot Net no Brasil

WebSite: www.dotnetbr.com

E-mail do Grupo: dotn...@googlegroups.com
==============================



--
Grato,
Pedro Clemente Pereira Neto

Ygor Thomaz

unread,
Jun 24, 2011, 6:42:13 PM6/24/11
to dotn...@googlegroups.com
Olá,

Encontrei no Oracle.

In Oracle/PLSQL, the soundex function returns a phonetic
representation (the way it sounds) of a string.

http://www.techonthenet.com/oracle/functions/soundex.php

Best regards,

--
Ygor Thomaz
Certified ScrumMaster (CSM)
Certified Scrum Product Owner (CSPO)
Website: http://www.ygorthomaz.com/
"With Great Power Comes Great Responsibility." Uncle Ben, Spiderman

Rafael Amorim

unread,
Jun 25, 2011, 3:17:24 PM6/25/11
to dotn...@googlegroups.com
Bacana, depois posta aqui, pra gente saber se realmente funciona.. :)

Rafael Amorim

Bruno Gross

unread,
Jun 26, 2011, 6:24:57 PM6/26/11
to dotn...@googlegroups.com
Eu conhecia o soundex já. A questão é se no oracle ele reconhece os fonemas do nosso português.

.

2011/6/25 Rafael Amorim <conta...@gmail.com>



--
Visite:
DotNet Br
Compras no Exterior

att.
Bruno Gross
(21) 83422729

Rafael Vasconcellos

unread,
Jun 27, 2011, 7:41:00 AM6/27/11
to dotn...@googlegroups.com
Na revista Mundo .Net do mês passado tem um artigo explicando uma adaptação do Soundex que funfa pro português.

Leandro Pereia Silva

unread,
Jun 27, 2011, 9:20:32 AM6/27/11
to dotn...@googlegroups.com
Amigo,

Eu já utilizei o Solr e funcionou muito bem, acredito que vai ajuda-ló

http://wiki.apache.org/solr/DataImportHandler

Abs,
Leandro Pereira
Reply all
Reply to author
Forward
0 new messages