> -- OBJETIVO: selecionar o cliente "JOSE DA SILVA NASCIMENTO" >> SELECT nome from cliente where busca @@ >> plainto_tsquery(simples('JOSE DA SILVA NASCIMENTO')); >> Porém retornam estes casos: >> JOSE ITAMAR DA SILVA NASCIMENTO >> JOSE EDUARDO DA SILVA NASCIMENTO >> JOSE ANTONIO DO NASCIMENTO SILVA >> JOSE AMERICO SILVA NASCIMENTO >> JOSE SILVA DO NASCIMENTO >> *JOSE DA NASCIMENTO SILVA* >> JOSE DO NASCIMENTO SILVA >> >> A minha dúvida é se consigo fazer a pesquisa pelo nome exato? >> > > SELECT nome from cliente where nome = 'JOSE DA SILVA NASCIMENTO'; > > ?? > Deste modo funciona, assim como LIKE funcionaria, o problema é performance, preciso de uma pesquisa rápida, veja a diferença:
EXPLAIN ANALYZE SELECT nome from cliente where busca @@ plainto_tsquery(simples('JOSE DA SILVA NASCIMENTO')); Limit (cost=21.61..40.83 rows=10 width=37) (actual time=76.969..77.041 rows=10 loops=1) -> Bitmap Heap Scan on cliente (cost=21.61..419.46 rows=207 width=37) (actual time=76.964..77.012 rows=10 loops=1) Recheck Cond: (busca @@ plainto_tsquery('jose da silva nascimento'::text)) -> Bitmap Index Scan on cliente_nome_gidx (cost=0.00..21.55 rows=207 width=0) (actual time=76.882..76.882 rows=96 loops=1) Index Cond: (busca @@ plainto_tsquery('jose da silva nascimento'::text)) *Total runtime: 77.085 ms* EXPLAIN ANALYZE SELECT nome from cliente where nome = 'JOSE DA SILVA NASCIMENTO'; *Seq Scan* on cliente (cost=0.00..36440.00 rows=1 width=37) (actual time=94.568..251.293 rows=1 loops=1) Filter: ((nome)::text = 'JOSE DA SILVA NASCIMENTO'::text) Rows Removed by Filter: 999999 *Total runtime: 251.330 ms* > []s > Flavio Gurgel > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- *______________________________________**Renan Catalani Fuentes de Campos* *Linkedin: br.linkedin.com/in/renanfuentes/ <http://br.linkedin.com/in/renanfuentes/>* *Skype:** renan_fuentes* *Telefone: (19) 9 9717-9845*
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral