这很奇怪,但我的搜索功能可以搜索我的项目表中除“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电动机角度研磨机正在显示。
答案 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总是这个名字的最后一部作品。
我不是全文搜索的专家,但这是我要开始的地方。