我尝试在Django项目中使用Postgres全文搜索来搜索我的数据库中的产品。shop_products
表有一个GIN索引字段search_vector
。我目前还有两个数据库,一个是托管在AWS RDS上的生产服务器(PostgreSQL 14.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-12), 64-bit
),另一个是我的本地开发数据库(Version PostgreSQL 14.2, compiled by Visual C++ build 1914, 64-bit
)。
我遇到的问题是,有些搜索结果在开发服务器上可以正常工作,但在生产服务器上却不能。例如,当我使用以下查询SELECT * FROM shop_products WHERE search_vector @@ websearch_to_tsquery('extreme');
查找包含单词“extreme”的产品时
这两个数据库都有完全相同的索引,其中“extreme”在数据库中被存储为“extrem”,并且在两个数据库中搜索“extrem”返回相同的结果。那么这是因为PostgreSQL版本不同还是其他因素可能影响搜索结果?
1条答案
按热度按时间2ledvvac1#
显然默认的搜索查询配置是不同的,在我的django文件中将它们设置为
config="english"
修复了这个问题。