我想仅根据标题搜索产品列表。产品标题可以是一个、两个、三个或更多的词,例如“丛林战士”。我想根据相关性对结果进行排名,就像这样。
完全匹配
- 搜索词是否出现在产品标题的第一个单词中
- 搜索词是否出现在第一个单词中并且在产品标题中出现多次(出现次数取决于其排名 - 更多 = 更高排名 - 不包括部分匹配
部分匹配
- 搜索词是否出现在产品标题中的第二个词和任何其他词中
- 搜索词是否出现在产品标题的第三个或更多单词中
- 搜索词是否出现在产品标题中的任何第一个词和任何其他词中(例如,“War”一词出现在“Warrior”一词中)
我通过在数据库上运行标准查询来获得我的产品名称数组
$q = "SELECT product_title FROM products_table WHERE product_title LIKE '%" . searchString . "%' AND product_status >= '1'";
并填充产品数组
if($products = $db->recordset($q))
因此,我需要处理数组并根据我的排名标准对每个结果进行排名。这就是我卡住的地方。
有人建议使用我勾选的全文搜索作为答案。不过,我对该查询有疑问,所以我提出了一个新问题