【发布时间】:2013-08-14 01:37:11
【问题描述】:
我有一个表格,其中包含我想要搜索的标题和关键字列。我想添加使用多词搜索的功能,但它肯定应该按相关性对结果进行排序。 FullTextSearch 不是一个选项,因为我目前使用的是 MySQL5.5 和 innoDB。
我目前的做法如下:
- 我单独搜索每个术语并将匹配的 ID 存储在 php 数组中。
- 搜索完所有字词后,我会计算 id 出现次数并进行相应排序。
我现在想知道是否有更有效的方法可以做到这一点,因为我主要使用 php。我应该在数据库中做一些这样的处理吗?我应该彻底改变我的方法吗?
该表相对较小(少于 10k 条记录),我预计在不久的将来它不会变得更大。
有什么建议吗?谢谢。
【问题讨论】:
-
如果您展示代码并提供有关表架构和查询的更多信息,您可能会获得一些帮助。
-
@DevlshOne:我使用的是 Joomla,所以我的数据库交互有点像 pdo,我使用的是 REGEX(一次一个术语),但我可以轻松地将其更改为 LIKE 语句。我只是不想让一些特定的语法妨碍我,我感兴趣的是是否有办法将这些功能中的一些移动到数据库中以便它运行得更快,或者是否有另一种完全不同的方法我应该考虑。不过,谢谢。
-
看看,也许它会有所帮助:stackoverflow.com/a/35512410/1673161
标签: php mysql performance search search-engine