【问题标题】:php MySQL implementing search featurephp MySQL实现搜索功能
【发布时间】:2015-04-11 19:07:42
【问题描述】:

我很难为我正在开发的基于 Web 的系统实现搜索功能,我首先使用 MySQL Like%wildcards%,但是它没有搜索我想要显示的内容,然后我遇到 全文索引搜索,它搜索得很好,但是在显示带有外键的多个表时出现问题,我不知道解决方法,然后MySQL with sphinx

我能否就实现搜索功能以搜索复杂数据库表的最佳方式/技术寻求任何建议

【问题讨论】:

  • 请举例说明。
  • 我一直在询问有关 mysql 搜索功能的问题 link link 请您就实现搜索功能以使用 php 和 mysql 搜索复杂数据库表的最佳方式/技术提供建议谢谢
  • 您实际上并没有具体说明您遇到的具体“问题”。仅仅因为您没有找到解决方法,并不意味着没有解决方法。

标签: php mysql full-text-search sphinx


【解决方案1】:

查看Apache Solr search server

Apache Solr official website

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

【讨论】:

  • @Densol 是的 solr 也可以使用 php,实际上我来自 java 背景,所以我没有尝试使用 php 但它支持你可以谷歌它以获取更多详细信息..
【解决方案2】:

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

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

...但是对于搜索非规范化结构可能是最好的。 (更大,但更容易 - 因此“搜索”更快。

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

  1. 在您的其他线程php mysql full text search multiple table joined by id 中提到的物化视图 - 将其全部保存在 mysql 中。

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

  3. 使用外部提供程序。有许多“搜索即服务”系统(基本上是前面文章中提到的软件的包装器)

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

您使用哪个取决于个人喜好(例如,外部应用程序需要更多设置工作,但总体上更强大)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    相关资源
    最近更新 更多