使用PostgreSQL全文搜索匹配短但重要的字符串

时间:2015-08-20 21:10:39

标签: postgresql

使用最新稳定的PostgreSQL,当我使用短字符串(例如Up)执行全文搜索时,即使Up明显位于一个或多个目标中,我也无法获得任何结果几行的列。例如:

SELECT title FROM things WHERE to_tsvector(title) @@ to_tsquery('Up');

结果显示此行重复:

NOTICE:  text-search query contains only stop words or doesn't contain lexemes, ignored

搜索更长的字符串会返回大量结果。有没有办法可以避免这种情况并进行短搜索而不会对长时间搜索产生负面影响?

(我正在通过SQLAlchemySQLAlchemy-Searchable执行查询,它会自动设置索引和触发器,但问题显然是在数据库级别。)

1 个答案:

答案 0 :(得分:1)

Up在PostgreSQL的英语词典中被视为stopword,因此不考虑在全文搜索中进行检索。但是,您可以定义自己的字典以包含您感兴趣的字词。请参阅此manual page

在此链接https://superuser.com/questions/479400/list-of-stopwords-in-postgres-9-1,您可以找到停用词字典在PostgreSQL中的位置。