[英]How to make a full text search engine with php and mysql?
我已经通过使用开放源代码创建了一个php搜索引擎。 我创建了一个数据库和一个包含5列的表:
标题 , 描述 , 关键字 , 链接 , 日期
我使用的代码是以下php代码:
<?php
$keywords = $_GET ['input'];
$keywords = "Led Zeppelin";
$words = explode(" ",$keyword);
foreach ($words as $w) {
$keyword_parts .= "+" . $w ." ";
}
$keyword_parts = substr($keyword_parts,0,-1);
$query = "SELECT
*,
MATCH (keywords,title) AGAINST ('" . $keywords . "') as score
FROM search
WHERE MATCH (keywords,title) AGAINST ('" . $keyword_parts . "' IN BOOLEAN MODE)
ORDER BY score DESC";
//connect
mysql_connect ("localhost", "root", "password");
mysql_select_db("intranet");
$query = mysql_query($query);
$numrows = mysql_num_rows ($query);
if($numrows >0){
while ($row = mysql_fetch_assoc($query)){
$id = $row ['id'];
$title = $row ['title'];
$description = $row ['description'];
$keywords = $row ['keywords'];
$link = $row ['link'];
$date = $row ['date'];
echo "<h2><a href='$link'>$title</a><h2/>
$description <br /><br />";
}
}
else
echo "No results found for \"<b>$each</b>\" ";
//disconnect
mysql_close();
?>
搜索脚本可以很好地工作,但是唯一的问题是它可以通过关键字进行搜索,这会增加搜索结果,但由于不同条目上的许多关键字匹配,因此很难找到想要的内容。
现在,我在网上阅读了有关全文搜索的信息(“使用MATCH()...再次使用语法。MATCH()进行全文搜索”),但是我不知道如何将其应用于代码。
这就是我过去使用过的。 另外,您必须对要进行匹配的列进行更改以允许FULLTEXT:
$keyword = "Led Zeppelin";
$words = explode(" ",$keyword);
$keyword_parts = '';
foreach ($words as $w) {
$keyword_parts .= "+" . $w ." ";
}
$keyword_parts = substr($keyword_parts,0,-1);
$query = "SELECT
*,
MATCH (column1,column2) AGAINST ('" . $keyword . "') as score
FROM table
WHERE MATCH (column1,column2) AGAINST ('" . $keyword_parts . "' IN BOOLEAN MODE)
ORDER BY score DESC";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.