统计站内热搜词 实现百度搜索的时候的提示功能

方案一:

建立一张热搜词的数据表  每次用户插入就直接更新该表即可

ID KeyWords Count

缺点:每次搜索后都要Update这张表,高并发的情况就不太好使

方案二:

建立一张热搜词的数据表  每次用户搜索一次,就直接将该用户搜索的词插入数据库(最好使用NoSql而非关系型数据库),毕竟插入数据库的速度要比更新来得快,但是查询起来速度又会减慢

ID KeyWords SearchTime

方案三:

结合方案一与方案二:

定时任务:

每个一段时间将方案二的数据库表里的数据归纳到方案一的数据表里

Sql语句如下:

insert into 方案一的表 (ID,KeyWords,Count)select newid(),KeyWords ,count(*) from

方案二的表 where DateDiff(day,SearchTime,GetDate())<=7 group by KeyWords

解决方法:

采用第三种方案

难点:定时任务

每次用户搜索时,现将搜索的词直接插入到SearchDetails表里,然后每隔一个小时执行上述的Sql语句,将搜索的热词统计到keyWordsRank表里(注意不是使用更新的方法,而是直接删除原表的内容然后再直接添加)

并且应该只统计近期内的,因为长时间内的热搜词没有太大意义

定时任务的解决:

使用Quartz.Net

添加两个dll文件Quartz.dll Common.Logging.dll

Quartz.Net是一个定时任务框架,可以实现异常灵活的定时任务,开发人员只要编写少量的代码就可以实现“每隔1小时执行”、“每天22点执行”、“每月18日的下午执行8次”等各种定时任务。

Quartz.Net中的概念:计划者(IScheduler)、工作(IJob)、触发器(Trigger)。给计划者一个工作,让他在Trigger(什么条件下做这件事)触发的条件下执行这个工作

将要定时执行的任务的代码写到实现IJob接口的Execute方法中即可,时间到来的时候Execute方法会被调用。

编写代码如下:

//每隔一段时间执行任务

IScheduler sched;

ISchedulerFactory sf = new StdSchedulerFactory();

sched = sf.GetScheduler();

JobDetail job = new JobDetail("job1", "group1", typeof(IndexJob));//IndexJob为实现了IJob接口的类

DateTime ts = TriggerUtils.GetNextGivenSecondDate(null, 5);//5秒后开始第一次运行

TimeSpan interval =  TimeSpan.FromHours(1);//每隔1小时执行一次

Trigger trigger = new SimpleTrigger("trigger1", "group1", "job1", "group1", ts, null,

SimpleTrigger.RepeatIndefinitely, interval);//每若干小时运行一次,小时间隔由appsettings中的IndexIntervalHour参数指定

sched.AddJob(job, true);

sched.ScheduleJob(trigger);

sched.Start();

要关闭任务定时则需要sched.Shutdown(true)

新建一个类IndexJob实现IJob接口

在接口提供的方法里写上定时任务的具体内容

在Application_start方法里执行上述代码的方法

怎样实现百度的那种效果

使用Jquery-UI

引用Jquery-UI.js 和css文件

使用AutoComplete这个插件(具体用法看demo)

$("#txtKeyWord").autocomplete({

source: "GetAllKeyWords.ashx"  //要求返回的是Json对象

});

时间: 2024-10-15 23:28:02

统计站内热搜词 实现百度搜索的时候的提示功能的相关文章

百度搜索下拉框提示代码 opensug.js

opensug ·简单方式--方便的将"百度搜索框(带提示功能)"直接加入到您的网页中. 将以下代码加入到您的网页中,即可获得带有"搜索框提示"功能的百度搜索框. HTML代码: <form action="http://www.baidu.com/baidu" target="_blank"> <table bgcolor="#FFFFFF"><tr><td>

CSS3实战开发:百度新闻热搜词特效实战开发

各位网友,今天这篇文章,我将手把手带领大家开发百度新闻首页的"新闻热搜词"特效.在这个特效中应用的知识点都很基础,如果你对这些还不清楚,可以关注我以前写的详细教程.今天讲这个案例,也是希望告诉大家,在开发一个特效的时候,请不要将问题复杂化.可能有些人一开始真的不知道从哪下手,当你看完本次教程,你定会觉得,原来一切都这么简单. 可能有些人还不知道这个特效,啥也不说了,直接上效果图: 从上面的特效中,大家不难发现,当鼠标划过热搜词时,会有一个半透明的黑色背景滑上来,而且这个黑色区域中也是有

利用 lucene.net 实现高效率的 WildcardQuery ,记一次类似百度搜索下拉关键字联想功能的实现。

打开百度输入  站内搜索也要实现类似功能.最基础的做法,写个方法查数据库搜索历史综合表keywordSearch(先将被搜索过的关键字记录到一张表,记录好他们被搜索的次数.上次搜索的有多少结果) 大概一条sql语句:select keyword,searchCount,xxxx from table where keyword like '会计%' 当表 keywordSearch 记录很有几百上千万的时候,like显然不能及时响应了.但是这种关键字联想的一旦有延迟返回,那是很不好的体验.还没等

jsonp跨越请求百度搜索api 实现下拉列表提示

题目来源: 最近在做百度IFE前端技术学院的题,然后有一题就是模拟百度搜索智能提示.题目是开源的,稍后给出地址. 因为博主没学过后端啊,欲哭无泪,所以不能实现后端模糊搜索,那如果前端ajax纯粹请求一份同样的数据,效果就不好. 机智的博主直接把百度搜索api借来一下. 直接从开发者工具,监控网络,找到请求地址. 百度api: 我把api缩减了一下,删除了大部分暂时用不上的参数. https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=abc

类似百度搜索的下拉提示框,复制别人的,改了一下。

jsp代码:在填写上级公司的input框时需要给客户提示已经保存过的相似公司名称,所以在下面加一个id为append的空的div. <div class="row cl"> <label class="form-label col-xs-4 col-sm-2" style="text-align: right;">上级公司:</label> <div class="formControls co

站长工具|百度搜索框提示功能

百度向站长开放免费“百度搜索框”代码和“百度搜索框提示”代码.只需进行简单的设置, 即可将“ 百度搜索框( 带提示功能)”功能快速加入到您的网页中.提升用户在网站中的搜索体验. 根据不同类型的网站需求,站长工具一共提供三种引入方式供您选择: 简单方式——方便的将“百度搜索框(带提示功能)”直接加入到您的网页中.将以下代码加入到您的网页中,即可获得带有“搜索框提示”功能的百度搜索框 HTML代码: <form action=”http://www.baidu.com/baidu” target=”

新站SEO通过百度站内搜索建立索引之我见

虽说现在360搜索的势头非常强劲,但是百度凭借着高居50%以上的市场份额依旧是国内各大中小站长SEO最为重视的搜索引擎.然后,随着市场格局的不断变化,百度对站长的态度也越趋于明朗化,从推出站长平台到站内搜索,都在进一步的示好广大站长. 当然,想成为一名合格的SEOer,首先你必须对各主流搜索引擎的站长平台中所提供的工具了然于胸.然后,你才有资格在大家面前谈所谓的SEO.今天,鄙人也站在一位新手站长的角度,谈谈工具之一的百度站内搜索对于新站的好处. 一个站点,如果连索引量都建立不起来,然后你来跟我

如何来看待一个词的“百度指数”

做seo的时候,在选词的时候,我们会来看一个词的百度指数有多少,以此来决定这个词的热度多少.这个可能是最直观的了,毕竟指数大了,搜索量自然大了,只要有好的排名,流量自然也几大了.可是等到你选好了词,做好了排名后,可能就会感觉更真实的样子了.以“银杏树”这个词为例,百度指数是比较高的,而“银杏树价格”就显得不很高了.一个站以这两个词都有百度首页排名,反而“银杏树价格”这个词的百度搜索展示量和点击量要高于“银杏树”这个词的百度搜索展示量和点击量.事实确是如此,以为百度指数很高的词,而带来的搜索展示和

开源 免费 java CMS - FreeCMS1.9 站内信

项目地址:http://www.freeteam.cn/ 站内信 管理站内信数据. 1. 站内信 从左侧管理菜单点击站内信进入. 2. 发送 系统管理员可以直接发送站内信给会员. 点击"发送"按钮. 选择需要发送的会员,输入标题内容后点击"发送"按钮. 3. 查看 在站内信列表中直接点击标题可以查看站内信的详细信息. 4. 删除 选择需要删除的站内信,然后点击"删除"按钮. 提示:同时可以删除多个站内信. 为了防止误操作,系统会提示用户是否删除,