Полнотекстовый поиск Postgres -с синонимами

У меня есть база данных ресторанов, по которой я выполняю полный -текстовый поиск. Код выглядит примерно так:

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');

Заметной проблемой в этом поиске является слово барбекю. Оно может быть записано по-разному :барбекю, барбекю, барбекю, барбекю, B -B -Q и т. д. Когда кто-то ищет любой из этих терминов, мне нужно искать рестораны по всем этим терминам.

Из того, что я прочитал в Интернете, кажется, мне нужно изменить словарь (Это будет pg_catalog.english, верно? ), но я не знаю, как это сделать.

6
задан Theron Luhn 7 August 2012 в 19:47
поделиться