大表的模糊搜索

时间:2015-07-03 12:03:46

标签: postgresql autocomplete lucene bigdata fuzzy-search

我有一个非常大的PostgreSQL表,有12M名称,我想显示一个自动完成。以前我使用了ILIKE "someth%"条款,但我并不满意。例如,它没有按相似性排序,任何拼写错误都会导致错误或没有结果。该字段是一个字符串,通常是一个或两个单词(任何语言)。我需要快速响应,因为在用户输入时(即自动完成)会向用户显示建议。我无法将模糊匹配限制为子集,因为所有名称都同样重要。我也可以说大多数名字都不同。

我试过pg_trgm,但即使使用杜松子酒索引也很慢。搜索类似于' html'的名称需要几毫秒,但是 - 不要问我为什么 - 其他搜索,例如' htm'需要很长时间 - 例如25秒其他人也报告了pg_trgm在大型表上的性能问题。

我能做些什么来有效地在该字段上显示自动填充功能吗? 全文搜索引擎(例如Lucene,Solr)是否适合作为解决方案?或者我会遇到同样的低效率?

0 个答案:

没有答案