tsvector
是 PostgreSQL 数据库中的一个数据类型,用于存储预处理的全文搜索文本。它是 PostgreSQL 全文搜索功能的基础组成部分,能够对文本进行分词、去除停用词等预处理操作,从而提高全文搜索的效率。
tsvector
能够显著提高全文搜索的速度和准确性。tsvector
是一种特定的数据类型,用于存储预处理后的全文搜索文本。CREATE TABLE articles (
id SERIAL PRIMARY KEY,
title TEXT,
content TEXT,
search_vector TSVECTOR
);
UPDATE articles SET search_vector = to_tsvector(title || ' ' || content);
SELECT * FROM articles WHERE search_vector @@ to_tsquery('search & term');
以下是一个简单的示例,展示如何使用 tsvector
和 tsquery
进行全文搜索:
-- 创建表
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name TEXT,
description TEXT,
search_vector TSVECTOR
);
-- 插入数据
INSERT INTO products (name, description) VALUES ('Laptop', 'A portable computer for work and entertainment.');
INSERT INTO products (name, description) VALUES ('Smartphone', 'A mobile phone with advanced features.');
-- 更新 search_vector 列
UPDATE products SET search_vector = to_tsvector(name || ' ' || description);
-- 执行全文搜索查询
SELECT * FROM products WHERE search_vector @@ to_tsquery('laptop & computer');
在这个示例中,我们创建了一个包含产品名称和描述的表,并使用 tsvector
来存储预处理的全文搜索文本。然后,我们执行了一个全文搜索查询,查找名称或描述中同时包含“laptop”和“computer”的产品。