全文検索を行うレストランのデータベースがあります。コードは次のようになります。
SELECT * FROM restaurant WHERE restaurant.search_vector @@ plainto_tsquery(:terms);
そしてsearch_vector
、次のように定義されています。
alter table restaurant add column search_vector tsvector;
create index restaurant_search_index on restaurant using gin(search_vector);
create trigger restaurant_search_update before update or insert on restaurant
for each row execute procedure
tsvector_update_trigger('search_vector',
'pg_catalog.english','title');
さて、この検索で注目すべき問題は、バーベキューという言葉です。BBQ、バーベキュー、BBQ、BBQ、BBQ など、さまざまな方法で綴ることができます。誰かがこれらのいずれかを検索する場合、これらすべての用語でレストランを検索する必要があります。
私がオンラインで読んだことから、辞書を変更する必要があるようです (それはpg_catalog.english
ですよね?) が、これについてどうすればよいかわかりません。