热词统计以及Quartz.net的简单使用

一.热词统计

方案一:

设计一个表:ID       KeyWord     Count

当用户再输入框中查询的时候,我们就往表中插入数据,在插入之前首先判断是否已经存在keyword,存在的话,让Count+1

这种方案非常费时

方案二:

表 :ID      Keyword     Count

每次用户输入的时候直接插入,不需要判断是否存在,当进行热词展示的时候,通过Group By语句进行统计

同样比较费时

方案三:

表一明细表:ID   Keyword

表二汇总表:ID   KeyWord   Count

用户每次输入并进行查询的时候,将数据插入到明细表中,然后使用定时任务,当用户量访问量比较小的时候,执行汇总操作,将数据插入到汇总表中。

这种实用性比较高

方案四:

对于用户访问量比较大的数据,采用关系型数据库,速度还是太慢。可以使用NoSql数据库,可以有效的解决高并发。

二.Quartz.net(计划任务组件)的简单使用

1.主要的dll文件

2.Quartz.net的使用有两种方式,1.采用配置文件的方式配置参数 2.直接在程序中使用代码设置参数,此处直接使用官方的demo中的例子,并适当的修改

  static void Main(string[] args)
        {
            ISchedulerFactory sf = new StdSchedulerFactory();
            IScheduler sched = sf.GetScheduler();
            //代码添加job和trigger

            DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(null, 5);
            IJobDetail job = JobBuilder.Create<KeywordJob>()
                .WithIdentity("job1", "group1")
                .Build();

            // Trigger the job to run on the next round minute
            ITrigger trigger = TriggerBuilder.Create()
                .WithIdentity("trigger1", "group1")
                .StartAt(startTime).WithSimpleSchedule(x => x.WithIntervalInSeconds(5).RepeatForever())
                .Build();
            sched.ScheduleJob(job, trigger);
            sched.Start();
            Console.ReadLine();
        }

3.Quartz.net中主要包括三个主要的对象:计划者(IScheduler)、工作任务(IJob)和触发器(ITrgger),我们可以在工作任务中添加我们需要定时执行的工作。

 public    class KeywordJob:IJob
    {
        public OA.IBLL.IKeywordCountService keywordService = new OA.BLL.KeywordCountService();
        public void Execute(IJobExecutionContext context)
        {
            keywordService.DeleteAll();
            keywordService.InsertAll();
        }
    }
时间: 2024-10-13 07:21:15

热词统计以及Quartz.net的简单使用的相关文章

Lucene热词统计

1.建立搜索表 ID KeyWords DT 搜索一次保存一次,id才用guid提高效率 /// <summary> /// 搜索数据 /// </summary> /// <returns></returns> private List<ViewSarchContentModel> SearchBookContent() { string indexPath = @"C:\lucenedir"; List<string

结对第二次—文献摘要热词统计及进阶需求

格式描述 课程:软件工程1916|W(福州大学) 要求:链接 结对学号:221600124&221600127 目标:学习如何使用Github和爬虫工具,体验结对编程 Github项目: 爬虫部分Python代码置于PairProject2的cvpr目录下 PairProject1-C PairProject2-C 代码签入记录: PairProject1 PairProject2 分工: 221600124:编写爬虫部分代码.测试代码并调试 221600127:编写WordCount基础需求及

JFreeChart与AJAX+JSON+ECharts两种处理方式生成热词统计可视化图表

本篇的思想:对HDFS获取的数据进行两种不同的可视化图表处理方式.第一种JFreeChar可视化处理生成图片文件查看.第二种AJAX+JSON+ECharts实现可视化图表,并呈现于浏览器上.   对此,给出代码示例,通过网络爬虫技术,将上传到HDFS的新浪网新闻信息实现热词统计功能,通过图表的柱状图来显示出来. ------> 目录: 1.JFreeChart可视化处理(生成本地图片) [1]HDFS文件读取 [2]JDFreeChart库应用 2.AJAX+JSON+EChart生成可视化图

cvpr论文爬取——热词云展示(WEB)

效果图: Python源码(将数据导入数据库): 1 import re 2 import requests 3 import pymysql 4 5 def insertCvpr(value): 6 db = pymysql.connect("localhost", "root", "root", "cvprlist", charset='utf8') # 连接数据库 7 8 cursor = db.cursor() 9 s

大数据热词科普(二)

在上一篇文章中我们给大家介绍了大数据的部分热词科普--人工智能.区块链.图灵测试.在这篇文章中我们给大家介绍一下涉及到大数据的回归分析.贪婪算法.MapReduce.数据挖掘.希望这些知识能够给大家带来帮助. 首先我们说的是回归分析,回归分析是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法.运用十分广泛,回归分析按照涉及的变量的多少,分为一元回归和多元回归分析:按照因变量的多少,可分为简单回归分析和多重回归分析:按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析.

Lucene 6.0 提取新闻热词Top-N

一.需求 给出一篇新闻文档,统计出现频率最高的有哪些词语. 二.思路 关于文本关键词提取的算法有很多,开源工具也不止一种.这里只介绍如何从Lucene索引中提取词项频率的TopN.索引过程的本质是一个词条化的生存倒排索引的过程,词条化会从文本中去除标点符号.停用词等,最后生成词项.在代码中实现的思路是使用IndexReader的getTermVector获取文档的某一个字段的Terms,从terms中获取tf(term frequency).拿到词项的tf以后放到map中降序排序,取出Top-N

热点热词风云榜-为APP应用提供免费的新闻资讯API接口

热点热词-Yi18事件风云榜 (top.yi18.net) 基于热点关键词二开放的新闻事件关注榜, 系统实时采集人们关注事件-基于百度搜索.搜狗热词.google趋势而采集的实时关注 事件与新闻. 热点热词API文档(doc.yi18.net/topapidoc)专门开放其API接口,         主要 为了让APP开发者更好的为自己的APP应用添加新闻资讯相关的实时数据.为APP应用更 有吸引力. 现在主要有两个API接口: 1.取得热词信息列表 如:api.yi18.net/top/li

热点热词开放接口-免费的API接口

热点热词风云榜  是 医药吧开放平台 基于百度风云榜而开发的开放接口. 系统及时更新百度风云榜的关键词(采集频率一小时,每天约采集100个关键词). 我们一向打造开放的心态,我们就把数据免费开放出来,提供大家一起共享. 热点热词API文档(http://doc.yi18.net/topapidoc)专门开放其API接口, 主要 为了让APP开发者更好的为自己的APP应用添加新闻资讯相关的实时数据. 为APP应用更有吸引力. 现在主要有两个API接口: 1.取得热词信息列表 如:http://ap

百度搜索热词下拉

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <style> *{ padding:0; margin:0} input,ul{ width:200px;} ul{ border:1px solid #ccc; display:none} li{ height:25px; l