php搜索引擎关键词排名



我是php和mysql的新手。在我的项目中,我必须为多个列上的多个关键字开发搜索引擎,还需要关键字排名和相关性。

例如,如果我有三个单词hi、hello、hey,并且想搜索主题、消息、引用、文本正文等字段。在这种情况下,拥有更多关键字排名的行将排在第一位,排名最低的行排在最后。有人会指导我如何实现这样的搜索引擎吗。我的数据库大约有400万,并且正在快速增长。

使用全文搜索:

<?PHP
    //SET THE SEARCH TERM
    $term = "Search Term";

    $sql = "SELECT *, MATCH(subject, message,reference,textbody) AGAINST('". $term ."') as score FROM pages WHERE MATCH (subject, message,reference,textbody) AGAINST('". $term ."') ORDER BY score DESC";
    $query = mysql_query($sql);
    //BUILD A LIST OF THE RESULTS
    while($result = mysql_fetch_assoc($query)) {
       // your stuff for showing result
    }
?>

注意:您应该在subject、message、reference、textbody

列上设置FULLTEXT索引

您可以将AND或or运算符与like关键字一起使用,这取决于您希望搜索返回的内容。

SELECT * FROM table WHERE subject LIKE %$param1% AND another_col LIKE %$param2% .......;

SELECT * FROM table WHERE subject LIKE %$param1% OR another_col LIKE %$param2% .......;

相关内容

  • 没有找到相关文章

最新更新