【问题标题】:More advanced searching of MySQL records更高级的 MySQL 记录搜索
【发布时间】:2011-04-18 12:49:25
【问题描述】:

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

对旧系统的抱怨之一是,您必须通过准确的拼写来搜索名称,否则将不会返回任何结果。

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

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

您会建议什么样的系统提供“更智能”的关键字解释(主要匹配紧密拼写的单词)?

【问题讨论】:

标签: mysql search solr search-engine sphinx


【解决方案1】:

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

但首先一定要看看mySQL's full text search functions.,它们在输入的关键字方面不是很灵活,但它们提供了许多附加功能,例如开箱即用的布尔搜索+Miller -Peter。也许这可以帮助您的客户的情况。

【讨论】:

    【解决方案2】:

    Solr 确实是您的绝佳选择。它不仅提供soundex support,它还具有语言词干和大量其他功能,您可以在以后利用这些功能。此外,单独托管允许您将搜索流量与数据库流量分开扩展。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多