基于lucene的案例开发:纵横小说数据库设计

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/45694049

http://www.llwjy.com/blogdetail/fa404163e42295646ab6e36e1ddb1037.html

个人博客站已经上线了,网址 www.llwjy.com ~欢迎各位吐槽~

-------------------------------------------------------------------------------------------------

首先和大家说一声抱歉,由于最近公司和个人的原因,博客停更已经有一个月了,最近自己会慢慢的恢复博客的更新。

在前面的几篇中已经介绍了纵横中文小说网的采集,这篇博客就介绍下数据库的设计。

设计思路

对于纵横中文小说网的四个采集类,我们将设计四张表来存储相关的信息。表crawllist主要存储采集的入口,存储着采集的地址、采集状态和采集频率;表novelinfo存储由更新列表页采集程序得到的url,并通过简介页采集程序将其他的信息更新完整;表novelchapter存储由章节列表采集程序得到的信息;表novelchapterdetail存储由小说阅读页采集程序得到的信息。表novelchapterdetail的信息可以合并到表novelchapter中,但这里为了以后的拓展需要,特意将其分开。

在这些表中,添加一个state字段,该字段标识这该项目下的url是否需要采集,这个字段是实现分布式采集的关键所在。

表设计图

sql文

/*
Navicat MySQL Data Transfer

Source Server         : 本机数据库
Source Server Version : 50151
Source Host           : localhost:3306
Source Database       : novel

Target Server Type    : MYSQL
Target Server Version : 50151
File Encoding         : 65001

Date: 2015-05-13 15:37:35
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `crawllist` 小说采集入口
-- ----------------------------
DROP TABLE IF EXISTS `crawllist`;
CREATE TABLE `crawllist` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `url` varchar(100) NOT NULL,##采集url
  `state` enum('1','0') NOT NULL,##采集状态
  `info` varchar(100) DEFAULT NULL,##描述
  `frequency` int(11) DEFAULT '60',##采集频率
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for `novelchapter` 小说章节信息
-- ----------------------------
DROP TABLE IF EXISTS `novelchapter`;
CREATE TABLE `novelchapter` (
  `id` varchar(32) NOT NULL,
  `url` varchar(100) NOT NULL,##阅读页URL
  `title` varchar(50) DEFAULT NULL,##章节名
  `wordcount` int(11) DEFAULT NULL,##字数
  `chapterid` int(11) DEFAULT NULL,##章节排序
  `chaptertime` bigint(20) DEFAULT NULL,##章节时间
  `createtime` bigint(20) DEFAULT NULL,##创建时间
  `state` enum('1','0') NOT NULL,##采集状态
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for `novelchapterdetail` 小说章节详细信息
-- ----------------------------
DROP TABLE IF EXISTS `novelchapterdetail`;
CREATE TABLE `novelchapterdetail` (
  `id` varchar(32) NOT NULL,
  `url` varchar(100) NOT NULL,##阅读页url
  `title` varchar(50) DEFAULT NULL,##章节标题
  `wordcount` int(11) DEFAULT NULL,##字数
  `chapterid` int(11) DEFAULT NULL,##章节排序
  `content` text,##正文
  `chaptertime` bigint(20) DEFAULT NULL,##章节时间
  `createtime` bigint(20) DEFAULT NULL,##创建时间
  `updatetime` bigint(20) DEFAULT NULL,##最后更新时间
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for `novelinfo` 小说简介信息
-- ----------------------------
DROP TABLE IF EXISTS `novelinfo`;
CREATE TABLE `novelinfo` (
  `id` varchar(32) NOT NULL,
  `url` varchar(100) NOT NULL,##简介页url
  `name` varchar(50) DEFAULT NULL,##小说名
  `author` varchar(30) DEFAULT NULL,##作者名
  `description` text,##小说简介
  `type` varchar(20) DEFAULT NULL,##分类
  `lastchapter` varchar(100) DEFAULT NULL,##最新章节名
  `chaptercount` int(11) DEFAULT NULL,##章节数
  `chapterlisturl` varchar(100) DEFAULT NULL,##章节列表页url
  `wordcount` int(11) DEFAULT NULL,##字数
  `keywords` varchar(100) DEFAULT NULL,##关键字
  `createtime` bigint(20) DEFAULT NULL,##创建时间
  `updatetime` bigint(20) DEFAULT NULL,##最后更新时间
  `state` enum('1','0') NOT NULL,##采集状态
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

----------------------------------------------------------------------------------------------------

ps:最近发现其他网站可能会对博客转载,上面并没有源链接,如想查看更多关于 基于lucene的案例开发点击这里。或访问网址http://blog.csdn.net/xiaojimanman/article/category/2841877 或 http://www.llwjy.com/blogtype/lucene.html

时间: 2024-10-10 19:49:49

基于lucene的案例开发:纵横小说数据库设计的相关文章

基于lucene的案例开发:纵横小说分布式采集

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/46812645 http://www.llwjy.com/blogdetail/9df464b20cca5405c7ce07e2fb2d768f.html 个人博客站已经上线了,网址 www.llwjy.com ~欢迎各位吐槽~ ----------------------------------------------------------------------------

基于lucene的案例开发:纵横小说阅读页采集

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44937073 http://www.llwjy.com/blogdetail/29bd8de30e8d17871c707b76ec3212b0.html 个人博客站已经上线了,网址 www.llwjy.com ~欢迎各位吐槽~ ----------------------------------------------------------------------------

基于lucene的案例开发:纵横小说简介页采集

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44851419 http://www.llwjy.com/blogdetail/1b5ae17c513d127838c2e02102b5bb87.html 个人博客站已经上线了,网址 www.llwjy.com ~欢迎各位吐槽~ ----------------------------------------------------------------------------

基于lucene的案例开发:纵横小说更新列表页抓取

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44831003 http://www.llwjy.com/blogdetail/a2d1df2b69f17696865f086777996fb1.html 个人博客站已经上线了,网址 www.llwjy.com ~欢迎各位吐槽~ ----------------------------------------------------------------------------

基于lucene的案例开发:纵横小说章节列表采集

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44854719 http://www.llwjy.com/blogdetail/ddcad68eeb91034247ffa331eb461213.html 个人博客站已经上线了,网址 www.llwjy.com ~欢迎各位吐槽~ ----------------------------------------------------------------------------

基于lucene的案例开发:案例初识

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/43192055 首先抱歉,这几天在准备案例的整体框架设计,所以更新就断了几天,还请原谅. 案例整体介绍 在我们开始正式的案例开发介绍之前,我们先看一下整体的案例demo介绍,明白案例是做什么的. 从上图中,我们可以看出,这个案例主要是通过爬虫程序去采集纵横小说上的资源,然后将资源存储到自己的数据库中,将数据库中的需要检索的数据通过lucene建立索引文件,最后通过web服务展示数

基于lucene的案例开发:实时索引的修改

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44280311 http://www.llwjy.com/blogdetail/e42fa5c3097f4964fca0fdfe7cd7a9a2.html 个人的博客小站已经上线了,网址 www.llwjy.com,欢迎大家来吐槽~ 上一篇博客已经介绍了实时索引的检索功能,这个就相当于数据的的查询功能,我们都知道数据库的增删改查是最常用的四个功能,实时索引也是一样,他也有增删改查

基于lucene的案例开发:数据库连接池

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/43272993 通过java程序去连接数据库时,使用的协议是TCP/IP协议,TCP/IP协议需要进行3次握手.如果每一次数据库操作都需要创建一个新的连接,都要进行3次握手,这是十分浪费资源的,程序的效率也不是很高.为了解决这个问题,我们想可不可以自己维护一些数据库连接,需要数据库操作的时候,直接使用这其中的一个连接,用完了,在还给它,这样的话就不需要每次数据库操作都创建一个新的

基于lucene的案例开发:Query查询

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/42969443 在Lucene索引的搜索过程中,构建Query对象是一个十分重要的过程.对于Query的理解,可以把它想象成数据库SQL查询语句中的where条件(当然Query的功能要比sql强大很多),在这篇博客中,我们将重点介绍几种常用的Query子类:QueryParser. MultiFieldQueryParser.TermQuery .PrefixQuery. Ph