> -- 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

Responder a