如何使用部分匹配搜索全文?

时间:2012-03-09 17:18:46

标签: php mysql database full-text-search

我有一个表,行数不多,列数也不多。我正在对3列进行全文搜索。

我的代码是

$search_input = trim($_GET['s']);
$search = mysql_real_escape_string($search_input);
$search = '+'.str_replace(' ', '* +', $search).'*';

$sql = "SELECT * FROM table WHERE   
        MATCH(def, pqr, xyz) AGAINST ('$search' IN BOOLEAN MODE)";

$result = mysql_query($sql);

我可以正确搜索 abcdefgh 等字词,这些字词以 ... abcdefgh ... 的形式显示。

但是我收到的搜索字词为 abc 的空集,其中表格中的内容类似 abc-123 ,还有 abcdefghs < / strong>即可。 (注意这是上面的复数)

显然我需要实现部分搜索,或类似的东西 但是我该如何实现这样的搜索呢?有没有更好的方法来对用户输入进行整个表搜索?

请提及我做错的事情。

编辑:在每个单词后添加*,现在我也可以搜索 abcde ,但上述问题仍然存在。

1 个答案:

答案 0 :(得分:1)

你的意思是你没有得到3个字母组合的结果?如果是这样,您可能会达到mysql索引长度(通常设置为3)

此处有更多信息 - http://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html