我正在使用 postgresql 进行全文搜索,我发现如果有拼写错误,用户将不会收到结果。我想同时使用模糊搜索和全文搜索。例如,我无法结合三元组索引和全文搜索。
在 Postgres 全文搜索中处理拼写错误的单词的最佳方法是什么?
我正在使用 postgresql 进行全文搜索,我发现如果有拼写错误,用户将不会收到结果。我想同时使用模糊搜索和全文搜索。例如,我无法结合三元组索引和全文搜索。
在 Postgres 全文搜索中处理拼写错误的单词的最佳方法是什么?
我建议您使用全文搜索或三元相似度匹配,但不要尝试混合使用它们。
根据要求,我会说三元相似度匹配更合适。
如果使用相似性运算符没有得到结果%
,您有两种选择:
降低相似度阈值pg_trgm.similarity_threshold
。
以不同的方式查询,以便获得最佳匹配,但它们是“遥远的”:
SELECT * FROM product ORDER BY katadi <-> ' pen' LIMIT 10;
我认为这将是更好的解决方案。
要使用模糊搜索,您需要确保扩展名存在。
CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;
检查文档,但您应用搜索:
SELECT levenshtein('GUMBO', 'GAMBOL');
您可以将结果放入列中以进行排序吗?您还应该调查“regexp_replace”以修复一些已知的拼写错误