我正在努力为我正在开发的基于网络的系统实施搜索功能,我首先使用MySQL 赞与%通配符% ,但它没有搜索我想要显示的内容,然后我发现全文索引搜索,它搜索得非常好,但在显示连接多个表的外键时有一个问题,我不知道变通方法,然后我带着 MySQL与sphinx ,
一起来了我可以要求任何建议,以实现搜索功能来搜索复杂数据库表格的最佳方法/技术
答案 0 :(得分:2)
答案 1 :(得分:1)
我想这里的一般答案是你想要一个搜索索引' - 专门用于运行搜索的索引。具有回答查询所需的所有数据的存储库。
RDBMS(如MySQL)非常适合规范化数据,以紧凑且易于更新的格式设置数据(即最小化重复) - 非常适合存储。但是查询受到影响,因为他们必须做更多的工作才能加入'所有需要的数据。
...但是搜索一个非规范化的结构可能是最好的。 (更大,但更容易 - 因此更快地搜索'。
有很多方法可以做到这一点。
你的另一个帖子php mysql full text search multiple table joined by id中提到的物化视图 - 将它全部保存在mysql中。
使用外部应用程序。有很多例子,Lucene(变种包括Solr和ElasticSearch),SphinxSearch等等。 这通常以类似的方式工作 - 设置数据的专用副本以使查询更容易。
使用外部提供商。很多人都在搜索服务'系统(基本上是以前帖子中提到的软件包装)
建立自己的!可以使用普通的mysql表自己构建一个系统。基本上,倒排索引的实现可能是最简单的。
您使用的是个人偏好(例如,外部应用程序设置的工作量更多,但整体功能更强大)