Oloooco!

Obrigado pela dica do GIN, matou a pau
Fiz um outro campo (produto_tsvector) salvei nele o to_tsvector(produto) e
estou buscando nele.

Advinha? A busca caiu de 1.2 segundos para 32ms

Impressionante!
Vou tentar agora outras combinações...

Lendo sobre o @@ to_tsquery(busca), ví que existem dois tipos de "junção" (&
e |), existe alguma opção como "| (OU)" mas que ordene os resultados pela
quantidade de palavras encontradas?

Por exemplo:
Busca = Bolo de chocolate

Trazer na ordem:

Bolo de chocolate (3 palavras)
Bolo de baunilha (2 palavras)
Biscoito de chocolate (2 palavras)
Farinha de milho (1 palavra)
...
Quero dizer, com preferência ao registro mais próximo do termo buscado...

Eu lí sobre o ts_rank mas não estou certo de que ele pode me ajudar, não
consegui encontrar uma forma de utilizá-lo para isso.



Obrigado =D

Jorge Vilela


2010/3/8 Leonardo Cezar <lhce...@gmail.com>

> 2010/3/8 Jorge Vilela <jorge.com...@gmail.com>:
> > Bom dia pessoal,
> > Tenho um sistema web, cuja principal função é buscar em uma tabela com
> > aproximadamente 2.4 milhões de registros.
> > Nessa tabela está sendo executado para busca +/- o seguinte SQL:
> >
> >
> > select nome from nome_produto where nome like upper('%abacaxi%') -- Os
> dados
> > da tabela nome_produto já estão em upper-case
>
> Procure indexar a coluna "nome" com índices do tipo GIN/GIST e utilize
> FTS[1] ao invés do operador LIKE.
>
> 1. http://www.postgresql.org/docs/8.4/interactive/textsearch.html
>
> -Leo
> --
> Leonardo Cezar
> http://www.aslid.org.br
> http://postgreslogia.wordpress.com
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a