在我的查询中,我基本上尝试使用全文搜索此搜索引擎。当用户键入一个项目时,查询会查看我的mysql表中是否有相同的字段。
例如,假设用户输入“iPad” 。我的表格可能包含“标题”,“说明”,“关键字”和“链接”字段:
我的桌子可能有:
Apple, which contains the term iPad once in the description
iOS 6, which contains iPad say twice, in the description and title (these are examples)
and iPad, which contains the term 'iPad' in the link, description, title and keywords.
第三个结果显示排名第一,其次是排名2,然后是标识1.
但是说我想输入'买iPad',查询完全相同,但一起检查两个单词。如果没有标题/描述/链接/关键字在一个字段中找不到它们两个单词,那么它会使用上面显示的方法找到第一个单词的最高排名。
Apple Store -> which contains the terms Buy and iPad in the title field
如果找不到匹配项,只需确定每个单词的等级并按其排名。
$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') ";
}