【发布时间】:2016-11-03 21:48:39
【问题描述】:
我有带有 tsvector 列的表,我也为该列创建了索引。我还有一些搜索所需的列(以及这些列的索引)。
例如:
表:职位空缺
列:title、description(title + description = tsvector)、salary(int value with index)。
我想查找所有职位空缺,其中包含标题+描述以及薪水 > 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结合的条件顺序无关。两个查询都将返回相同的内容。 -
但是对于使用索引,它有米特。
-
不,即使是索引使用也没有关系。使用
explain analyze select ....检查执行计划,你会看到
标签: sql postgresql full-text-search