我一直在为我的网站开发实时搜索功能。我获取了一堆表值(即乐队、流派、专辑等),并将它们放在各自的表中,以及用于索引的搜索表中。我的主要问题是如何使它更准确。
这是我的 mysql 查询(注意:有或没有 Desc 的结果相同):
$search = "
(SELECT * FROM `search`
WHERE `search_name` LIKE '%$search_term%'
ORDER BY '%$search_term%' DESC
LIMIT 0, 8)";
下面是一个数据库示例:
Search ID | Search Name | Type |
----------------------------------------------------------
8 | Big Deal (What's He Done Lately?) | Album |
12 | Henry's Funeral Shoe | Band |
问题是,当我在搜索参数中输入说H时,我希望亨利的葬礼鞋在顶部,但我却在它之前得到了Big Deal(他最近做了什么?),因为它包含 H 并且被搜索在更合适的一个是之前。
所以我的问题是:是否有一个 MySQL 函数可以对表进行排序并找到最相关的结果并将它们与那些不太相关的结果进行权衡?