On Wed, May 25, 2016 at 6:34 PM, Lucas Possamai <drum.lu...@gmail.com> wrote:
> 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? > ​Parentheses? David J. ​