我有一个包含100m行的表格,我需要对其进行全文搜索,并提供有关文本的相似度(例如,使用pg_trgm模块)的信息。关闭,因为这里的问题是它应该很快。
我尝试了gist和gin索引,在我的字段的tsvector中添加了一个额外的列。
我的想法是首先使用tsvector进行查询,然后运行pg_trgm模块提供的相似度函数。
我的问题如下。如果我使用一个完整的单词作为我的查询,它将工作。但如果我附加一些东西就不会了。
这完全说得通,因为“一只敏捷的棕色狐狸”的tsvector ...是"'a':1 'brown':3 'fox':4 'quick':2"。
我希望我已经清楚地说明了我想要实现的目标。
示例:
作品
select to_tsvector('A quick brown fox...') @@ to_tsquery('quick') -- true不工作
select to_tsvector('A quick brown fox...') @@ to_tsquery('quicks') -- false关于如何使用postgresql实现这一点有什么想法吗?
发布于 2021-09-22 14:26:36
您需要设置语言配置参数,如下所示:
select to_tsvector('english', 'A quick brown fox...') @@ to_tsquery('english', 'quicks')只有当tsquery和tsvector具有相同的语言配置时,才能正确识别词位、复数和填充物。
https://stackoverflow.com/questions/46707464
复制相似问题