sql >> Database >  >> RDS >> PostgreSQL

Correcte full-text index Rails/PostgreSQL/pg_search

Deze uitdrukking:

to_tsvector('simple', (COALESCE(title::TEXT), ''))

kan niet worden vergeleken met uw index.

U moet de index declareren op precies die uitdrukking die in de query wordt gebruikt:

CREATE INDEX products_gin_title
ON products
USING GIN(to_tsvector('simple', COALESCE(title::TEXT,'')))

(of laat ruby ​​de uitdrukking genereren die in de index wordt gebruikt).

Als u meerdere kolommen wilt indexeren, voegt u ze gewoon samen:

CREATE INDEX products_gin_title
ON products
USING GIN(to_tsvector('simple', title || ' ' || product_type || ' ' || platform_id))

maar nogmaals, Ruby zou op exact dezelfde uitdrukking moeten filteren om de index bruikbaar te maken.




  1. Dynamische gegevensmaskering in SQL Server voor geavanceerde gebruikers

  2. Is dit mogelijk met mysql?

  3. Een Postgres DB op Heroku . vernietigen

  4. voorwaardelijke unieke beperking