我想你應該考慮full text search。
在postgresql中,您要做的是創建一個類型爲tsvector的列,該列將包含其他列的分解版本。它會照顧stemming這個詞。
alter table TABLE add column tsv_description tsvector;
然後你需要填充它。
UPDATE TABLE SET tsv_description = (to_tsvector('pg_catalog.english',coalesce(searchname, '')) || (to_tsvector('pg_catalog.english',coalesce(searchbrand, '')) || to_tsvector('pg_catalog.english',coalesce(othercol, ''));
然後你就可以查詢使用to_tsquery像這樣:
select * from TABLE where tsvdescription @@ plainto_tsquery('pg_catalog.english','my super full text query');
您還可以列轉換爲上飛,但它的速度較慢tsvectors。
select * from TABLE where to_tsvector(searchname) || to_tsvector(searcbrand) @@ plainto_tsquery('pg_catalog.english','tocino');
*嘆*是這麼簡單?謝謝你,試試這個。 – Gabrie
決定去你的第二個建議,並創建一個單獨的表,只有一個字段和全文索引。謝謝 – Gabrie