mysql实现搜索_mysqlʵÏÖËÑË÷µÄд·¨

这篇博客探讨了如何在PHP中处理MySQL全中文文检索的问题。由于MySQL本身不支持中文分词,作者提出了一种解决方案,通过PHP进行中文分词,然后将分词结果用于MySQL的全文搜索。文章详细解释了PHP分词函数的工作原理,并给出了关键代码片段,包括停用词过滤、HTML标签去除以及ASCII字符处理等步骤。这种方法虽然效率不高,但在实际应用中非常实用。
摘要由CSDN通过智能技术生成

ËùÒÔ,µ½ÕâÀïÄãÓ¦¸Ã»ámysql Ó¢ÎÄÈ«ÎÄËÑË÷ÁË.

Çë×¢ÒâÒ»¸öÎÊÌâ.

һЩ´ÊÔÚÈ«ÎÄËÑË÷ÖлᱻºöÂÔ£º

* ÈκιýÓڶ̵Ĵʶ¼»á±»ºöÂÔ¡£ È«ÎÄËÑË÷ËùÄÜÕÒµ½µÄ´ÊµÄĬÈÏ×îС³¤¶ÈΪ 4¸ö×Ö·û¡£

* Í£Ö¹×ÖÖеĴʻᱻºöÂÔ¡£

mysql»¹×Ô´ø²éѯÀ©Õ¹¹¦ÄÜ.ÕâÀï²»×ö¹ý¶àÌÖÂÛ.

ÏÂÃæ½øÐÐphpÖÐÎÄÈ«ÎÄËÑË÷µÄ·ÖÎö

Ôø¾­ÓÐÒ»¸ö°æ±¾µÄmysqlÖ§³ÖÖÐÎÄÈ«ÎÄËÑË÷(º£Á¿ mysql chinese+,˵ÊÇGPLµ«ÊÇ×îÖÕûÓпªÔ´)

ÖÐÎÄÈ«ÎÄËÑË÷µÄ¹Ø¼üÊÇÔÚ·Ö´ÊÉÏ.mysql±¾Éí²»Ö§³ÖcjkµÄ·Ö´Ê(cjk:chinese,japanese,korean),

ËùÒÔ

!!!!****ÈçºÎÓÃphpÄ£Äâ·Ö´ÊÊÇmysqlÈ«ÎÄË÷ÒýµÄ¹Ø¼ü****!!!!

ÖÐÎÄ·Ö´ÊÊÇÓïÑÔ·Ö´ÊÖÐ×îÀ§ÄѵÄ.ÏÖÔÚҲûÓÐÈËÄܹ»³¹µ×ÍêÃÀµÄ½â¾ö(ËäÈ»ÕâЩËÑË÷ÒýÇæ×öµÄ¶¼»¹²»´í.)

//fcicq:ÏÂÃæ¸ø´ó¼Ò¿´¿´ÕâÀïphpµÄ·Ö´ÊÊÇÔõô×öµÄ.

function &DV_ChineseWordSegment($str,$encodingName=’gbk’){

static $objEnc = null;

if( $objEnc === null ){

if( !class_exists(’DV_Encoding’) ){

require_once ROOT_PATH.’inc/DV_Encoding.class.php’;

}

$objEnc =& DV_Encoding::GetEncoding($encodingName);

}

$strLen = $objEnc->StrLength($str);

$returnVal = array();

if( $strLen < = 1 ){

return $str;

}

$arrStopWords =& DV_GetStopWordList();

//print_r($arrStopWords);

//¹ýÂËËùÓÐHTML±êÇ©

$str = preg_replace('#|#is’, ”, $str);

//¹ýÂËËùÓÐstopword

$str = str_replace($arrStopWords[’StrRepl’],’ ‘,$str);

$str = preg_replace($arrStopWords[’PregRepl’],’ ‘,$str);

//echo “$str:{$str}

“;

$arr = explode(’ ‘,$str);

//fcicq:ºÃÁË,ÕâÏÂÃæµÄ²ÅÊÇphp·Ö´Ê¹Ø¼ü *************

foreach( $arr as $tmpStr ){

if ( preg_match(”/^[x00-x7f]+$/i”,$tmpStr) === 1 )

{ //fcicq:È«ÊÇEÎÄ,û¹Øϵ,mysql¿ÉÒÔÈÏʶµÄ

$returnVal[] = ‘ ‘.$tmpStr;

} else{ //fcicq:ÖÐÓ¢»ìºÏ…

preg_match_all(”/([a-zA-Z]+)/i”, $tmpStr, $matches);

if( !empty($matches) ){ //fcicq:Ó¢Óﲿ·Ö

foreach( $matches[0] as $matche ){

$returnVal[] = $matche;

}

}

//¹ýÂËASCII×Ö·û

$tmpStr = preg_replace(”/([x00-x7f]+)/i”, ”

, $tmpStr); //fcicq:Äã¿´,ʣϵIJ»¾ÍÈ«ÊÇÖÐÎÄÁË?

$strLen = $objEnc->StrLength($tmpStr)-1;

for( $i = 0 ; $i < $strLen ; $i++ ){

$returnVal[] = $objEnc->SubString($tmpStr,$i,2)

; //fcicq:×¢ÒâÕâÀïµÄsubstr,²»ÊÇÊÖ²áÉϵÄ.

//fcicq:Äã×Ðϸ¿´,ËùÓеĴʶ¼ÊÇ·Ö³ÉÁ½¸ö.

//±ÈÈç”Êý¾Ý¿âµÄÓ¦ÓÔ,»á±»·Ö³ÉÊý¾Ý ¾Ý¿â ¿âµÄ µÄÓ¦ Ó¦ÓÃ…

//È«ÎÄËÑË÷: È«ÎÄ ÎÄËÑ ËÑË÷

//Õâ·Ö´Ê×ÔÈ»ÊDz»ÔõôÑùµÄ

//µ«ÊÇ,ËÑË÷µÄʱºòͬÑùÕâô×ö.

//±ÈÈçËÑË÷Êý¾Ý¿â,¾ÍÏ൱ÓÚËÑË÷ÁËÊý¾Ý ¾Ý¿â.

//ÕâÊÇÒ»ÖÖÏ൱´«Í³µÄÈ«ÎÄËÑË÷·Ö´Ê·½·¨.

}

}

}

return $returnVal;

}//end function DV_ChineseWordSegment

//fcicq:Õâ¾ÍÊÇ´«ËµÖеÄsubstr.żÏàÐÅÐí¶àÈËд³öÀ´µÄphp´úÂ붼±ÈÕâ¸öºÃ.

function &SubString(&$str,$start,$length=null){

if( !is_numeric($start) ){

return false;

}

$strLen = strlen($str);

if( $strLen < = 0 ){

return false;

}

if( $start < 0 || $length < 0 ){

$mbStrLen = $this->StrLength($str);

} else{

$mbStrLen = $strLen;

}

if( !is_numeric($length) ){

$length = $mbStrLen;

} elseif( $length < 0 ){

$length = $mbStrLen + $length - 1;

}

if( $start < 0 ){

$start = $mbStrLen + $start;

}

$returnVal = '';

$mbStart = 0;

$mbCount = 0;

for( $i = 0 ; $i < $strLen ; $i++ ){

if( $mbCount >= $length ){

break;

}

$currOrd = ord($str{$i});

if( $mbStart >= $start ){

$returnVal .= $str{$i};

if( $currOrd > 0×7f ){

$returnVal .= $str{$i+1}.$str{$i+2};

$i += 2;

}

$mbCount++;

} elseif( $currOrd > 0×7f ){

$i += 2;

}

$mbStart++;

}

return $returnVal;

}//end function SubString

//²åÈëÈ«ÎÄËÑË÷·Ö´Ê±í.Ò»¹²Á½¸ö,Ò»¸ö topic_ft,Ò»¸öbbs_ft

$arrTopicIndex =& DV_ChineseWordSegment($topic);

if( !empty($arrTopicIndex) && is_array($arrTopicIndex) ){

$topicindex = $db->escape_string(implode(’ ‘,$arrTopicIndex));

if( $topicindex !== ” ){

$db->query(”UPD ATE {$dv}topic_ft SET topicindex=’

{$topicindex}’ WHERE topicid=’{$RootID}’”);

} else{

$db->query(”DEL ETE FROM {$dv}topic_ft

WHERE topicid=’{$RootID}’”);

}

}

}

Õâ¾ÍÊÇËùνµÄmysqlÈ«ÎÄËÑË÷·Ö´Ê£¬mysql²»»á·Ö´Ê£¬¶øphp»á¡£¾ÍÕâô¼òµ¥¡£

ÕâËäÈ»ÊÇÒ»ÖֱȽϹýʱµÄ·½·¨£¬µ«ÊǷdz£ÊµÓá£

weixin063传染病防控宣传微信小程序系统的设计与实现+springboot后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值