mysql 全文检索中文解决方法及实例代码
mysql全文检索中文解决方法
最近公司项目要求这样的功能,在数据库中检索中文,很是棘手,上网查询下资料,找的类似文章,这里及记录下,希望能帮助到大家,
实例代码:
<?php /* mysql全文检索中文解决方案! */ error_reporting(E_ERROR|E_WARNING|E_PARSE); ini_set('display_errors','1'); //数据库支持 classSaeMysql{ //phpmysql操作类 } $DBS=newSaeMysql; //数据加入 echo'2'; /*创建数据表*/ $DBS->runSql('CREATETABLEIFNOTEXISTS`ces_articles`( `id`mediumint(8)unsignedNOTNULLAUTO_INCREMENT, `title`varchar(255)COLLATEutf8_unicode_ciNOTNULLDEFAULT\'\', `url`varchar(255)CHARACTERSETutf8COLLATEutf8_binDEFAULTNULL, PRIMARYKEY(`id`), FULLTEXTKEY`url`(`url`) )ENGINE=MyISAMAUTO_INCREMENT=1DEFAULTCHARSET=utf8COLLATE=utf8_unicode_ciROW_FORMAT=DYNAMIC'); /*数据加入*/ $title='我爱大家啊,大家好'; $DBS->runSql('INSERTINTO`ces_articles`(id,title,url)VALUES(0,\''.$title.'\',\''.str_replace('\u','u',trim(json_encode($title))).'\')'); $title='中国是什么'; $DBS->runSql('INSERTINTO`ces_articles`(id,title,url)VALUES(0,\''.$title.'\',\''.str_replace('\u','u',trim(json_encode($title))).'\')'); $title='http://ask.1912news.com'; $DBS->runSql('INSERTINTO`ces_articles`(id,title,url)VALUES(0,\''.$title.'\',\''.str_replace('\u','u',trim(json_encode($title))).'\')'); $title='问答系统'; $DBS->runSql('INSERTINTO`ces_articles`(id,title,url)VALUES(0,\''.$title.'\',\''.str_replace('\u','u',trim(json_encode($title))).'\')'); $title='1912网'; $DBS->runSql('INSERTINTO`ces_articles`(id,title,url)VALUES(0,\''.$title.'\',\''.str_replace('\u','u',trim(json_encode($title))).'\')'); $title='零九网络'; $DBS->runSql('INSERTINTO`ces_articles`(id,title,url)VALUES(0,\''.$title.'\',\''.str_replace('\u','u',trim(json_encode($title))).'\')'); //搜索: $_GET['q']="中国"; echo'q'; if(isset($_GET['q'])){$sql='match(url)against(\''.str_replace('\u','u',trim(json_encode($_GET['q']))).'\'INBOOLEANMODE)';} $query=$DBS->getData('SELECT*FROM`ces_articles`where'.$sql.'LIMIT10'); echo'q'; if($query){ foreach($queryas$article){ echo$article['id']; } } ?>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!