У меня есть таблица «топиков» со связанными запросами по ключевым словам, которые я реализовал в столбце tsquery. Мои данные в основном выглядят так:
topic_name : topic_tsquery
Sports : 'basketball' | 'football'
Crime : 'violence' | 'police' | 'felony'
Lifestyle : 'wine' | 'cooking' | 'leisure'
Цель состоит в том, чтобы автоматически сопоставлять входные текстовые документы с темами, выполняя такие запросы:
SELECT topic_name FROM topic
WHERE to_tsvector(INPUT_DOC_TEXT) @@ topic_tsquery;
Обычно в PostgreSQL FTS я вижу, что tsvector хранится и индексируется, а ввод - это tsquery, но это как бы наоборот.
Это масштабируемое решение, поскольку моя таблица тем выходит за рамки нескольких тысяч строк? Есть ли индекс, в который я могу добавить свой столбец topic_tsquery
, чтобы сделать запросы более эффективными?