在我的项目中,要求我在我们正在使用的数据库上实施文本查询服务; PostgreSQL。我使用了Postgresql Full Text Search功能,在时间上效果还不错。关于全文搜索的一个问题是,它不具有模糊搜索功能。另一方面,存在名为pgtrgm 提供用于确定字母数字文本的相似性的函数和运算符的扩展名。也有几个[pg]使用pgtrgm进行文本搜索;
examples
您也知道postgres FTS的示例;
select actor
from products
where actor % 'tomy';
因此,主要问题是,这两种搜索策略之间有什么区别?哪一种是更合适的文本搜索方式?可以混合吗?我还需要说性能也是一个重要的问题。预先感谢!
差异非常大-在模糊搜索中,您要搜索的是相似结果,在全文搜索中-要完全相同。用例问题是,哪一种比另一种更合适。
如果不需要模糊性,请不要使用它,这是巨大的性能开销,因为它必须不完全匹配文本,还需要尝试其他组合。