全文搜索无效

时间:2012-11-15 04:28:32

标签: php mysql full-text-search

我正在尝试实现全文搜索,因为我想允许用户输入一串文本并找到最匹配的结果。我使用在线教程制作了一个,但它们看起来不起作用。

这是数据库创建语句: delimiter $$

CREATE TABLE `word_list` (
  `item_id` int(11) NOT NULL,
  `item_name` text,
  `item_tags` text,
  `item_description` varchar(255) NOT NULL DEFAULT 'none',
  `item_added_by` varchar(45) NOT NULL DEFAULT 'system',
  `item_display` int(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`item_id`),
  FULLTEXT KEY `word_list` (`item_name`,`item_tags`),
  FULLTEXT KEY `item_name` (`item_name`,`item_tags`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1$$

这是我的代码:

<?php
error_reporting(E_ALL ^ E_NOTICE);

$_POST['search'] = 'red';
//if we got something through $_POST
if (isset($_POST['search'])) {
$searchQ = $_POST['search'];
$link = mysql_connect('localhost', '', '');
mysql_select_db("", $link);
$res = mysql_query("SELECT * from word_list WHERE MATCH (item_name, item_tags) AGAINST('$searchQ')", $link);
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";

$ant = mysql_num_rows($res);
    if ($ant > 0) { // query provided results – display results
    echo ("<br/><h2>Search results for \"$searchQ\":</h2>");
        while ($result = mysql_fetch_array($res)) {
            echo ("<h3>{$result['name']} ({$result['score']})</h3>{$result['description']}<br/><br/>");
        }
    } else { // query provided 0 results – display 0 hit message
    echo ("Sorry... Searching for \"$searchQ\" gave no results");
    }
}
?>

请让我知道我做错了什么。

1 个答案:

答案 0 :(得分:1)

我认为问题是 -   MySQL使用MATCH AGAINST忽略全文搜索中的小词,请看一下这篇博客   http://biostall.com/mysql-ignoring-small-words-in-full-text-search-using-match-against