功能不搜索特定单词

时间:2010-03-03 08:32:18

标签: php mysql search

这很奇怪,但我的搜索功能可以搜索我的项目表中除“grinder”之外的任何单词。我尝试了所有的东西,但它似乎没有搜索到那个词。有人可以帮帮我吗?

CREATE FULLTEXT INDEX item_name_other_name_desc_index 
    ON item (name,other_name,description) 

public static function Search($string) 
{    

    $delims = ',.; '; 
        $word = strtok($string,$delims); 
        while($word) 
        { 

           $result['accepted'][] = $word;                    
           $word = strtok($delims); 

        } 

          $string = implode(" ", $result['accepted']); 

    $sql = 'SELECT item_id,name,other_name,description,price,discounted_price, thumbnail_photo,large_photo 
    FROM item 
    WHERE  
    MATCH(name,other_name,description) 
    AGAINST(:string)' ; 
    $parameters = array(':string' => $string); 
    $result['items'] = DB::GetAll($sql,$parameters); 
    return $result; 
} 

物品名称: 9在15 AMP电动角磨机中 8台式磨床
1/4角度模具磨床
7角磨机中 3在直磨机中 Ryobi HP512K无绳电钻/驱动器套件
6件装喷漆
非接触式电压测试仪

当我将上述内容更改为:
9在15 AMP电动角磨机中 8在板凳研磨中 1/4角钢模具研磨
7角磨研 3在直磨中 Ryobi HP512K无绳电钻/驱动器套件
6件装喷漆
非接触式电压测试仪

我搜索Grinder,记录=> 9在15 AMP电动机角度研磨机正在显示。

2 个答案:

答案 0 :(得分:2)

默认情况下,mysql全文搜索会将超过50%的单词或行作为停用词(http://dev.mysql.com/doc/refman/5.1/en/fulltext-natural-language.html)处理。尝试在布尔模式(http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html)中搜索,此时您没有50%的阈值。

答案 1 :(得分:0)

如果在文本中移动Grinder这个词有什么不同,那么“15 AMP Motor Angle Grinder”会是“15 AMP Motor Angle Grinder Test”吗?我问这个,因为Grinder总是这个名字的最后一部作品。

我不是全文搜索的专家,但这是我要开始的地方。