I've got the following query:

SELECT COUNT(DISTINCT j0_.id) AS sclr0FROM ja_customers j0_WHERE
((LOWER(j0_.name_first) LIKE '%asd%'
        OR LOWER(j0_.name_last) LIKE '%asd%'
        OR LOWER(j0_.company) LIKE '%asd%'
        OR LOWER(j0_.phone) LIKE '%asd%'
        OR LOWER(j0_.mobile) LIKE '%asd%')
       AND j0_.deleted = 'f'
       AND j0_.clientid = 2565)
  AND j0_.clientid = 2565

It returns: 3

I created a GIN index;

CREATE INDEX CONCURRENTLY ON public.ja_customers USING gin (name_first
gin_trgm_ops, name_last gin_trgm_ops, company gin_trgm_ops, phone
gin_trgm_ops, mobile gin_trgm_ops);

New query to hit the new index:

SELECT COUNT(DISTINCT j0_.id) AS sclr0FROM ja_customers j0_WHERE
j0_.name_first LIKE '%asd%'
        OR j0_.name_last LIKE '%asd%'
        OR j0_.company LIKE '%asd%'
        OR j0_.phone LIKE '%asd%'
        OR j0_.mobile LIKE '%asd%'
       AND j0_.deleted = 'f'
       AND j0_.clientid = 2565
  AND j0_.clientid = 2565

It returns: 532


The problem is that the new query returns different results...

Please, what am I missing guys?


Cheers

Reply via email to