我在mysql中有一张表。它包含大约一百个网站的链接、标题、描述和关键字。并非每个网站都有关键字字段。我在自己编写的网络爬虫上爬取了 Apple.com,并为大多数苹果网站编制了索引。
我将表格链接到我的搜索引擎,但我遇到了问题。我使用的代码没有按相关性排序。我的意思是,如果用户在搜索引擎中输入“Apple”,它将返回相当随机的结果。如果我输入“购买 ipad”,ipad 会出现,而不是苹果商店。我希望查询扫描所有字段以查看每个用户输入在该字段中的次数,然后按最相关排名。*如果发生冲突,则较高的 id 获胜...基本上。
顺便说一句,如果我输入 iphone 或 ipad,就会显示正确的结果。我有两个不同的查询,分别用于单独和组合的术语,并且很想知道如何将它们混合在一起以获得 1 个查询。
Terms together:
$query = " SELECT * FROM scan WHERE ";
$terms = array_map('mysql_real_escape_string', $terms);
$i = 0;
foreach ($terms as $each) {
if ($i++ !== 0) {
$query .= "AND";
}
$query.= "Match(title, description, keywords, link) Against ('".implode(' ', $terms )." in boolean mode);
}
Terms Seperate
$query = " SELECT * FROM scan WHERE ";
$terms = array_map('mysql_real_escape_string', $terms);
$i = 0;
foreach ($terms as $each) {
if ($i++ !== 0) {
$query .= "or";
}
$query.= "Match(title, description, keywords, link) Against ('".implode(' ', $terms )." in boolean mode);
}