sql >> Database teknologi >  >> RDS >> PostgreSQL

Korrekt fuldtekstindeks Rails/PostgreSQL/pg_search

Dette udtryk:

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

er ikke sargerbar i forhold til dit indeks.

Du bør erklære indekset på netop det udtryk, som bruges i forespørgslen:

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

(eller få rubin til at generere det udtryk, der bruges i indekset).

Hvis du ønsker, at flere kolonner skal indekseres, skal du blot sammenkæde dem:

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

men igen, Ruby burde filtrere på nøjagtig det samme udtryk for at indekset kan bruges.




  1. Bedste måde at fortælle, at 3 eller flere på hinanden følgende poster mangler

  2. Langsom forespørgsel med venstre ydre joinforbindelse og er null-tilstand

  3. SQLSTATE[HY093]:Ugyldigt parameternummer:parameter blev ikke defineret

  4. Administration af høj tilgængelighed i PostgreSQL – Del II:Replikeringsmanager