Pois é, as vezes temos que dar uns nós pra conseguir o que o chefe pede :)

Esse site que passei o cara pode procurar pela frase que quiser e o sistema 
faz todos os cruzamentos trazendo os assuntos mais proximos de acordo com as 
palavras da frase.

Nao vi como fazer isso numa procedure se muitos problemas



-----Mensagem Original----- 
From: Tiago Adami
Sent: Wednesday, September 05, 2012 1:33 PM
To: Comunidade PostgreSQL Brasileira
Subject: Re: [pgbr-geral] Localizar em todos campos de uma tabela

Em 5 de setembro de 2012 12:25, Guimarães Faria Corcete DUTRA, Leandro
<[email protected]> escreveu:
> 2012/9/5 Marcelo Silva <[email protected]>:
>> Pra isso tenho uma tabela de indices que guarda todas as palavras do
>> cadastro, do campos que quiser...
>
> Parece desperdício…

Depende de como foi implementado. Certa vez fiz testes com o FTS para
algo semelhante à pesquisa do Google, mas foi desastroso ao passo que
tornou-se lento demais (se não me engano na versão 8.3). Já fiz algo
semelhante indexando todo o conteúdo de uma coluna texto em outra
tabela. Como por exemplo, o conteúdo da coluna em um registro: "Tiago
José Adami" criaria 3 registros na tabela de indexação [1]. Aí depende
de criar uma consulta AND/OR dependendo de como for feita a consulta.

Foi uma atitude desesperada, nos testes a velocidade de consulta foi
bem satisfatória pois a coluna na tabela de índices, obviamente, era
indexada. Mas a dor de cabeça veio com a complexidade de procedures e
triggers por baixo do pano para gerir toda esta funcionalidade, o que
deixava a alteração de registros muito lento.

No final, como eram 4 colunas tipo VARCHAR indexadas, optei por fazer
uma VIEW com 4 SELECTs em UNION. Não ficou perfeito, mas ficou mais
rápido que o FTS. Não sei se hoje com a versão 9.1 o FTS está mais
rápido, nunca mais o utilizei.

[1] http://pastebin.com/NTNUDaWX

-- 
TIAGO J. ADAMI
http://www.adamiworks.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a