php MySQL实现搜索功能

时间:2015-02-11 12:03:47

标签: php mysql full-text-search sphinx

我正在努力为我正在开发的基于网络的系统实施搜索功能,我首先使用MySQL %通配符% ,但它没有搜索我想要显示的内容,然后我发现全文索引搜索,它搜索得非常好,但在显示连接多个表的外键时有一个问题,我不知道变通方法,然后我带着 MySQL与sphinx

一起来了

我可以要求任何建议,以实现搜索功能来搜索复杂数据库表格的最佳方法/技术

2 个答案:

答案 0 :(得分:2)

检查Apache Solr search server

Apache Solr official website

此技术将解决您所有与搜索相关的问题

答案 1 :(得分:1)

我想这里的一般答案是你想要一个搜索索引' - 专门用于运行搜索的索引。具有回答查询所需的所有数据的存储库。

RDBMS(如MySQL)非常适合规范化数据,以紧凑且易于更新的格式设置数据(即最小化重复) - 非常适合存储。但是查询受到影响,因为他们必须做更多的工作才能加入'所有需要的数据。

...但是搜索一个非规范化的结构可能是最好的。 (更大,但更容易 - 因此更快地搜索'。

有很多方法可以做到这一点。

  1. 你的另一个帖子php mysql full text search multiple table joined by id中提到的物化视图 - 将它全部保存在mysql中。

  2. 使用外部应用程序。有很多例子,Lucene(变种包括Solr和ElasticSearch),SphinxSearch等等。 这通常以类似的方式工作 - 设置数据的专用副本以使查询更容易。

  3. 使用外部提供商。很多人都在搜索服务'系统(基本上是以前帖子中提到的软件包装)

  4. 建立自己的!可以使用普通的mysql表自己构建一个系统。基本上,倒排索引的实现可能是最简单的。

  5. 您使用的是个人偏好(例如,外部应用程序设置的工作量更多,但整体功能更强大)