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