PHP与MYSQL实现搜索功能

PHP与MYSQL实现搜索功能,第1张

算了。估计这次回答没分。
跟你聊聊所谓的智能搜索吧。
不用 like 实现你说的智能一些的搜索。首先你得做一套分词系统。就是把你那一句话分成若干个词。
比如“你是个非常牛逼的二傻子”这句话。你不能把“你是个”当成一个词吧。 智能一点的分词应该是把“你、非常、牛逼、傻子”分出来。
然后就开始涉及到一个权重问题了。就是 你分出来的这些词 到底你希望哪些符合条件的结果排在签名。很明显上面那句话 傻子的权重要高一些。其次是牛逼。。。
然后 根据权重结果匹配呈现出结果来。。。
基本上 搜索引擎都是这么干的。 分词---数据查询----权重排序----结果呈现。。。。

可以放到数据库中,如果你要的数据有时效性,那就不需要放数据库了
if (数据库中有)
{
推给访问者
}else{
去baidu或者youku抓数据,并保存到数据库中,再推给访问者
}

一、PHP网站关键词优化

根据搜索引擎的工作原理,我们知道用户和搜索引擎都是根据关键词对目标网站进行搜索分析。通过分析这些的关键词和搜索流量,我们发现在网站发展前期关键词是影响网站被搜索引擎收录的一个核心因素,关键词给网站带来了大量用户的同时也带来了大量的流量,其流量比例占网站总流量的绝大部分。由此可见,关键词的优化对于网站的流量至关重要。而关键词的确定必须是和网站内容高度相关的,一般网站需要在以下位置设置关键词:

(1)关键词需要出现在标签当中,也就是标题当中需要包含关键词,而且还需要保证不同的页面是不一样的;

(2)关键词应放在网站的标签内的keywords和description里面,并且一般只可出现一次;

(3)网站logo的Alt属性中可以设置于网站主题的关键词,其他的Alt应放着与相符合的ALT属性,否则会被搜索引擎认为在作弊;

(4)网站的目录名和文件名可以设置为关键词,会更好的被搜索引擎抓取;

(5)网页内容的中一般放置一篇文章的标题或者内容提要,这里需要放置关键词,但是整个页面的关键词不易设置过度,一般设置在标签中,但需与文章内容相关,否则会认为在作弊。

二、PHP网站地图优化

网站地图优化又叫网站导航优化俗称sitemap。首先网站地图为网站访问者指明了访问网站的方向和路径,清晰明了的告诉网站访问者网站的布局和内容,给网站访问者友好的体验。用户的体验感觉不错,那么他下次访问网站的几率就会大大提高;其次搜索引擎蜘蛛也非常喜欢网站地图。因此做好网站地图SEO,对于网站非常重要。

(1)针对PHP网站,一般采用XML格式的网站地图。网站地图保存在根目录下的一个XML文件里,大家在很多网站的底部都会发现有这么一个文件。例如:,它是网站上链接的列表。制作一个简洁明了高效的网站地图,可以为搜索引擎快速浏览整个网站的窗口,并且收录网站的全部内容。

(2)一般在网站的footer下添加一个关键词,并指向相应的内容页面。

三、PHP网站URL地址优化

URL地址优化包括URL地址静态化(又叫伪静态)和URL地址转向两个方面。根据搜索引擎的搜索原理,静态页面更有利于搜索引擎抓取收录。现在大多数网站都是动态的页面,比如本文所讨论的PHP网站就为动态链接的页面。那么我们就要采取措施把PHP动态生成的页面转化为静态页面。

四、url地址静态化

(1))把网页上带链接的地方,都换上新的静态化链接。搜索引擎和浏览器将通过该链接来发生请求。

(2)Apache服务器中在>

第一,选择百度自定义的搜索功能。百度为了有效促进站长的发展,进而实现共赢,对此百度提供了丰富的站长工具,其中百度自定义的搜索就是一款非常实用的站内搜索模块,对于广大的站长朋友们来说,只需要直接引入,不需要进行二次开发就能够轻松的实现站内搜索。不过这种方法当然也有一定的缺陷,因为这没有定制功能,所以在深度整合方面还存在着一定的缺陷。

第二,选择第三方的搜索功能的开源系统。比如常见的SOLR以及SPHINX等软件,这些开源系统能够直接被引入到网站中,从而实现站内的搜索功能。不过对于很多技术水平不高的站长朋友们来说,应用这些开源系统往往具有一定的难度,在实际使用中需要学习,这往往会影响到站长的应用热情。

第三,通过采购的方式来获得需要的定制服务。这种方法显然具有成本高的劣势,毕竟需要采购相应的定制服务,往往需要不菲的费用,对于草根站长们来说,可能自身的投资资金不够,所以在采购第三方定制服务方面积极性不高,但是从性能的角度上来看,定制具有良好的搜索体验,而且现在互联网上也开始出现了免费版,再加上这方面的系统开源情况越来越高,所以这些定制服务的费用也开始降低,所以从发展网站品牌的角度上来说,采用定制服务显然具有更多的优势。

总而言之,站内搜索随着网站内容的不断增长开始显得越发重要,对此我们从建站的最初就要充分的想到引入到搜索功能,这不仅仅能够有效提升用户的搜索体验,同时也能够有助于百度蜘蛛的抓取。

有三种常见的方式

1、自己设计表单、编程、与数据库链接检索。

2、在百度或谷歌注册申请站内搜索功能。获得代码,添加到自己的页面中。

3、使用第三方的工具软件,搭建检索功能。

总感觉你这个SQL
$sql="select from `$table` where `$condition` like '%$_POST[key]%'";
有问题 正确的应该写成
$sql="select from `"$table"` where `"$condition"` like '%"$_POST[key]"%'";
如果按照你原来的SQL 打印出了结果但是没有加粗 你可以尝试替换成其他字符
用以判断是否执行了
$arr['username']=ereg_replace("/($_POST[key])/i","<b>\\1</b>",$arr['username']);

第二个:<title><PHP echo $_SESSION['title']></title>
title标签中间的内容表示网页标题,搜索引擎搜索出来显示的标题即是title标签中的内容

完整的代码如下

<form action="/indexphp" method="get" target="_blank" id="form">    
<div class="am-input-group">    
<input type="hidden" name="m" value="search">    
<input type="hidden" name="c" value="index">    
<input type="hidden" name="a" value="init">    
<input type="hidden" name="typeid" value="1">    
<input type="hidden" name="siteid" value="1">    
<input type="text" class="am-form-field am-input-sm" name="q" id="q" placeholder="搜索" data-validation-message="至少1个字符" minlength="1" required>    
<input type="hidden" name="page" value="1">    
<span class="am-input-group-btn">    
<button class="am-btn am-btn-default" type="button"><span class="am-icon-search"></span></button>    
</span>    
</div>    
   </form>

其中typeid是模型ID,siteid是站点ID

琅枫个人博客。

如果想简化phpcms v9的搜索功能可以参考下>

简化了phpcms的搜索功能。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/12916745.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存