Login
网站首页 > 文章中心 > 其它

php智能搜索

作者:小编 更新时间:2023-08-16 08:48:23 浏览量:462人看过

PHP与MYSQL实现搜索功能

算了.估计这次回答没分.

跟你聊聊所谓的智能搜索吧.

不用 like 实现你说的智能一些的搜索.首先你得做一套分词系统.就是把你那一句话分成若干个词.

比如"你是个非常牛逼的二傻子"这句话.你不能把"你是个"当成一个词吧. 智能一点的分词应该是把"你、非常、牛逼、傻子"分出来.

然后就开始涉及到一个权重问题了.就是 你分出来的这些词 到底你希望哪些符合条件的结果排在签名.很明显上面那句话 傻子的权重要高一些.其次是牛逼...

然后 根据权重结果匹配呈现出结果来...

基本上 搜索引擎都是这么干的. 分词---数据查询----权重排序----结果呈现....

php怎么生成sitemap.xml

/**

*?生成站点地图

*/

class?sitemap{

private?$sitemapFile?=?array();

private?$oldxml?=?null;

private?$newxml?=?null;

public?$error??=?null;

public?function?__construct($sitemapFile)?{

$this-sitemapFile?=?$sitemapFile;

if(is_file($this-sitemapFile))?{

$data?=?file_get_contents($this-sitemapFile);

if($data)?{

$this-oldxml?=?new?SimpleXMLElement($data);

}else{

$this-error?=?'读取站点地图文件失败';

}

$this-oldxml?=?$this-createEmptySitemap();

$this-newxml?=?$this-createEmptySitemap();

public?function?createEmptySitemap()?{

$str?.=?'urlset?xmlns=""?xmlns:xsi=""?xsi:schemaLocation="??"?/urlset';

return?new?SimpleXMLElement($str);

public?function?addChilds($urlArr)?{

$urlArr?=?(array)?$urlArr;

foreach($urlArr?as?$url)?{

$lastmod?=?date('Y-m-d');

$changefreq?=?'weekly';

if(stripos($url,'.html'))?{

$priority?=?1;

$changefreq?=?'monthly';

if($oldXmlUrl?=?$this-findOldXmlUrl($url))?{

$priority?=?$oldXmlUrl-priority;

$lastmod?=?$oldXmlUrl-lastmod;

$changefreq?=?$oldXmlUrl-changefreq;

$rating?=?$this-newxml-addChild('url');

$rating-addChild('loc',$url);

$rating-addChild('priority',$priority);

$rating-addChild('lastmod',$lastmod);

$rating-addChild('changefreq',$changefreq);

public?function?findOldXmlUrl($url)?{

$oldXmlUrl?=?'';

foreach($this-oldxml-url?as?$key=$xmlUrl)?{

if($xmlUrl-loc?==?$url)?{

$oldXmlUrl?=?$xmlUrl;

unset($this-oldxml-url[$key]);

break;

return?$oldXmlUrl;

public?function?save()?{

$data?=?$this-newxml-asXML();

if(file_put_contents($this-sitemapFile,$data)?===?false)?{

$this-error?=?'写入站点地图数据失败';

return?false;

return?true;

上面这个是我个人博客生成站点地图用的类.

$sitemapFile?=?'Sitemap.xml';

$sitemap?=?new?sitemap($sitemapFile);

if($sitemap-error)?{

die($sitemap-error);

$newUrl?=?[

''

];

$sitemap-addChilds();

if(!$sitemap-save())?{

关键的问题是,你如何得到整站的url呢?

我个人博客的解决方法是写了个蜘蛛程序爬出来的.

首先,你用的数据库,起码要把你的数据库表贴出来吧,不然我们怎么给你具体的语句呢,智能猜测你的表

猜测数据课程名称字段 classname 然后拿到这个课程的所有学生成绩信息

如果要一条语句出来就是连表了

假设你一个学生信息表 stuInfo,一个课程表 class,一个成绩表 score

那么就是更具课程名字拿到课程id,然后再成绩表中拿到这个课程id的所有信息,然后再根据score表的uid拿到学生名字等信息

我只能写个推测的写法

select stuInfo.name,class.classname,score.score

from score

left join class on score.class_id = class.id

left join stuInfo on score.uid = stuInfo.id

where class.classname = "查询框拿到的课程名字"

如果你不用联表查

那就先课程表查询出class_id 然后成绩表拿到这个class_id 的所有数据 当然要用户信息可能要连个表,我就不写了

php怎么做一个智能搜索呀?

首先你要有个词库,然后将输入的内容拆分,然后再全文检索.技术不难,难就难在如果收集这个词库

PHP 如何搜索一个字符串中是否包邮姓名

你只能搜索确定的字符串,或者正则对象

可以通过preg_match()函数来搜索.

但如果你连正则也不能给出,要像人一样去理解哪些是"姓名",那只能用人工智能了.

以上就是土嘎嘎小编为大家整理的php智能搜索相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章