更高级的MySQL记录搜索

时间:2010-09-28 20:54:38

标签: mysql search solr search-engine sphinx

我有一个10,000人的人事数据库。我正在开发一个PHP CMS来管理和搜索这些人。

关于旧系统的一个抱怨是你必须按照确切的拼写搜索名字,否则不会返回任何结果。

旧系统使用的是MySQL LIKE语句,这些语句过于精确(我不想让用户负担如何使用通配符的解释)

我听说过像Sphinx和Solr这样的系统 - 这些系统令人印象深刻而且非常强大,但理想情况下我想避免在服务器上安装额外的软件进行大量配置(或者如果我这样做,那么更简单更好的)

你会建议哪种系统提供“更智能”的关键词解释(主要是拼写拼写的单词)?

2 个答案:

答案 0 :(得分:2)

您可以查看mySQL的SOUNDEX() / SOUNDS LIKE是否为您完成了这项工作。如果没有,您可能确实需要一个外部搜索引擎,就像您提到的那样。

但首先请务必查看mySQL's full text search functions.关于输入的关键字,它们不是很灵活,但它们提供了许多其他功能,例如布尔搜索+Miller -Peter开箱即用。也许这可以帮助您的客户的情况。

答案 1 :(得分:0)

Solr对你来说真是个不错的选择。它不仅提供soundex support,它还具有语言干扰和大量其他功能,您可以利用它们。此外,单独托管可让您与数据库流量分开扩展搜索流量。

如果您不喜欢系统管理,您可能会考虑像Websolr这样的托管服务(完全披露:我是其联合创始人之一),它的构建正是为了提供所有杀手搜索功能。 Solr给那些没有专业知识或倾向于配置,监控和性能调整Solr本身的开发人员。