У меня есть таблица с столбцом tsvector, также я создаю индекс для этого столбца. Также у меня есть несколько столбцов (и индексы для этих столбцов), которые требуются для поиска.Postgresql полнотекстовый поиск с другими условиями
Например: Таблица: вакансии
колонок: название, описание (название + описание = поисковый вектор), заработная плата (целое значение с индексом).
Я хочу, чтобы найти все вакансии с текстом, который содержит в названии + описании, а также заработной платы> 1000.
Какой столбец будет первым условием.
SELECT *
FROM vacancies
WHERE title_description_tsvector @@ plainto_tsquery('php developer')
AND salary > 1000;
ИЛИ
SELECT *
FROM vacancies
WHERE salary > 1000
AND title_description_tsvector @@ plainto_tsquery('php developer');
Порядок условий в сочетании с 'AND' не имеет значения. Оба запроса возвратят одно и то же. –
Но для использования индексов у него есть метр. – trauma
Нет, даже для использования индекса это будет иметь значение. Проверьте план выполнения, используя 'explain analysis select ...', и вы увидите –