mysql - 更高级的 MySQL 记录搜索

标签 mysql search solr search-engine sphinx

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

对旧系统的提示之一是您必须按照名称的确切拼写来搜索名称,否则不会返回任何结果。

旧系统使用 MySQL LIKE 语句,这太精确了(我不想让用户因为如何使用通配符的解释而增加负担)

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

您建议使用哪种系统来提供“更智能”的关键字解释(主要匹配拼写紧密的单词)?

最佳答案

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

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

关于mysql - 更高级的 MySQL 记录搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3816972/

相关文章:

mysql - SequelizeEagerLoadingError : product is not associated to collection

php - PDO : 'Could not find driver'

php - MYSQL合并两个日期字段然后Order BY

java - solrj中的Document.addField和Document.setField有什么区别?

solr - 基本身份验证

mysql - 如何使用 PHP CodeIgniter 将 CSV 数据导入 MYSQL 数据库?

c++ - 在 n 个皇后主冲突搜索中表现不佳

objective-c - 在 NSString 搜索栏中不断搜索子字符串

ruby-on-rails - 太阳黑子、Solr、order_by、编码

java - 使用 Lucene 近实时索引功能时是否需要关闭 DirectoryReader