0

我正在尝试构建一个基于 MySQL FULL TEXT 的搜索引擎,但我没有得到任何搜索结果。我正在研究 MySQL 版本是 5.5.24,它支持 Innodb 的全文。所以我将数据库类型保留为 Innodb 以提高速度,我的排序规则也是 utf8mb4_unicode_ci。

我已将字段“标题”类型设置为 TEXT 并更改了表“test_table”之类的。

ALTER TABLE `test_table` ADD FULLTEXT (`title`)

我正在写这样的查询,但没有显示结果。

    require_once('../global/includes/connect.php');
$db = mysql_select_db($database,$connection) or trigger_error("SQL", E_USER_ERROR);

$sqlquery = mysql_query("SELECT title FROM test_table WHERE MATCH(title) AGAINST ('%keyword%')");
while($row=mysql_fetch_assoc($sqlquery)){
echo $row['title'];
echo"</br>";
}

对于这样的查询

    $sqlquery = mysql_query("SELECT title FROM test_table ");
while($row=mysql_fetch_assoc($sqlquery)){
echo $row['title'];
echo"</br>";

结果显示。

我尝试将数据库更改为 MyISAM,但同样的问题。

请建议我在这里做错了什么。

谢谢。

4

3 回答 3

0

尝试使用以下内容:

require_once('../global/includes/connect.php');
$db = mysql_select_db($database,$connection) or trigger_error("SQL", E_USER_ERROR);

$sqlquery = mysql_query("SELECT MATCH(title) FROM test_table WHERE MATCH(title) AGAINST ('security')") OR die(mysql_error());
while($row=mysql_fetch_assoc($sqlquery)){
echo $row['title'];
echo"</br>";
}
于 2012-07-26T07:52:32.007 回答
0

明白了,修改查询

$sqlquery = mysql_query("SELECT title FROM test_table WHERE MATCH (title) AGAINST ('keyword' IN BOOLEAN MODE) ")or die (mysql_error());

希望这对其他人也有帮助。

于 2012-07-26T08:28:15.047 回答
0

你以前失踪$keyword

$sqlquery = mysql_query("SELECT title FROM test_table 
                         WHERE MATCH(title) AGAINST ('%$keyword%')"); 
                                                       ^

也读this

于 2012-07-26T08:32:12.527 回答