Suggest系统智能提示
--------- 开发过程随笔系列之二项目简介: Suggest功能具有一定的技术难点,对Google与Baidu等搜索引擎来说Suggest库是主要难点之一,但与搜索引擎不同,我们的网站最主要的信息是车源信息,用户的搜索目地也是如此,信息范围小且单一,所以降低了技术难度,我们的Suggest功能的信息主体是二手车车源信息,目地是方便我们网站的用户找到他中意的二手车.
开发周期:1月/人
源代码位置:
$/B二手车/suggest.
性能上的考虑:
这种东西肯定得需要性能上的保证,否则用户就会对你的这个东西失去耐心,从而弃之.为了提高性能充分的采用了缓存机制,尽可能的减少用户等待时间.
扩展和可配置化:
一个好的程序扩展性很强可配置性很高.本程序注重这点.可以分为以下几部分。
缓存策略:可在配置文件里配置具体的缓存时间。
<appSettings>
<!--系统级别缓存(分钟)-->
<add key="SystemCachTimeSpan" value="30"/>
<!--数据级别缓存(分钟)-->
<add key="DataCachTimeSpan" value="30"/>
<!--检索结果级别缓存(分钟)-->
<add key="ResultCachTimeSpan" value="5"/>
</appSettings>
消息队列配置:由于需要记录 用户行为,采用消息队列处理用户信息,为了方便扩展可以在配置文件里做培植,指定可以分发到多台服务器上。
<BitAuto.Ucar.Suggest.MSMQConfig>
<CommonConfig>
<MsmqConfig Enabled="True" AllowMultiSendMessage="False" DefaultMessageSendArrdess="./Private$/suggestkeywordmessage">
<MultiMessageAddress>
<add MessageAddressName="./Private$/suggestkeywordmessage" Enabled="True"></add>
<add MessageAddressName="./Private$/KeyWordReceiveMessage2" Enabled="True"></add>
</MultiMessageAddress>
</MsmqConfig>
</CommonConfig>
</BitAuto.Ucar.Suggest.MSMQConfig>
业务处理和表现层分离:
把逻辑放到业务逻辑层,使系统更加松耦合,模块之间高内聚。
部署更加方便:由于只是一个辅助性的东西,为了更加方便部署在脚本里做了封装只需引用
<!--Suggest智能提示开始-->
<script type="text/javascript" src="http://suggest.ucar.cn/js/suggestframework.js"></script>
<script type="text/javascript" src="http://suggest.ucar.cn/js/SuggestOutPut.js"></script>
<link href="http://suggest.ucar.cn/css/defaultCss.css" rel="stylesheet" type="text/css" />
<div id="ucar_sugest">
</div>
<!--Suggest智能提示结束-->
实现了多平台多网站的任意部署。具体的样式可以通过样式文件去控制。
应用地址:http://www.ucar.cn/