和我一起打造个简单搜索之Logstash实时同步建立索引

用过 Solr 的朋友都知道,Solr 可以直接在配置文件中配置数据库连接从而完成索引的同步创建,但是 ElasticSearch 本身并不具备这样的功能,那如何建立索引呢?方法其实很多,可以使用 Java API 的方式建立索引,也可以通过 Logstash 的插件 logstash-input-jdbc 完成,今天来探讨下如何使用 logstash-input-jdbc 完成全量同步以及增量同步。

环境

本文以及后续 es 系列文章都基于 5.5.3 这个版本的 elasticsearch ,这个版本比较稳定,可以用于生产环境。

默认你已经搭建好 es 的基础环境,如还未搭建好,请参考前文。接下来只讲解 logstash 的安装使用。本文使用最新版本的 logstash ,版本号为 6.4.0。

系列文章

数据准备

如图所示,如果要实现这个搜索,首先要创建相关的索引,筛选条件有男生/女生,还有分类,属性,字数,连载状态,品质等,排序条件有人气,时间,字数,收藏,推荐,点击。

这些数据正常都不会再同一张表当中,而是分布于不同的表中,但这些数据都与作品的 id 紧紧关联。本文为了方便演示,把这些数据都放在同一张表当中,如果在实际使用的过程当中,如果遇到多张表的情况,可以写 sql 进行联合查询,同样也可以建立索引,实现方式详见下文。

创建表结构

CREATE TABLE `book`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `create_time` datetime(0) NULL DEFAULT NULL,
  `update_time` datetime(0) NULL DEFAULT NULL,
  `status` tinyint(11) NULL DEFAULT NULL,
  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
  `intro` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL,
  `icon` int(11) NULL DEFAULT NULL,
  `author` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
  `words` int(11) NULL DEFAULT NULL,
  `collection` int(11) NULL DEFAULT NULL,
  `goods` int(11) NULL DEFAULT NULL,
  `click` int(11) NULL DEFAULT NULL,
  `site` tinyint(11) NULL DEFAULT NULL,
  `sort` tinyint(11) NULL DEFAULT NULL,
  `vip` tinyint(11) NULL DEFAULT NULL,
  `popularity` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB  CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ;

导入测试数据

注:测试数据是通过爬虫在盗版网站抓的,个别数据胡乱填写的。

INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (1, '2017-12-27 20:53:01', '2018-09-10 20:53:46', 0, '火爆娱乐天王', '  有人说:“他是至高无上的音乐教皇!”有人说:“他是无人能及的影视国王!”还有人说:“他是神级作家、话剧大师、伟大的音乐家……”他使华夏元素狂暴冲击西方文化,却又能做出令西方人也不及的欧美音乐影视。他造就了无数的歌星影星,创作出无数的经典,建立了一个庞大的娱乐帝国。当所有人称颂他膜拜他的时候,只有他自己知道,他不过是一个意外来自异时空的文化使者。  ', 1, '茶与酒之歌', 230000, 4234, 42315, 523, 2, 9, 1, 12423);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (2, '2017-12-27 20:53:01', '2017-12-27 20:53:03', 0, '无限平行进化', '  日复一日的枯燥生活让廖宇开始产生了难以抑制的厌倦。沉重庞大的经济负担使他的生活开始产生了变化。历史的缺失更是成为了他心中不散的谜团。某一天突如其来的陌生信息终于给他打开了一扇门。性格各异的X战警与复杂庞大的复仇者联盟会再度爆发怎样的战争。加勒比海上是否还会扬起第四艘传奇战舰的旗帜。铺天盖地的宇宙虫族与冰冷机械的人工智能谁才是最具有侵略性的文明。最终廖宇会如何选择,向左还是向右…… 各位书友要是觉得《无限平行进化》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!无限平行进化最新章节,无限平行进化无弹窗,无限平行进化全文阅读.  ', 0, '雪色银狼CS', 555555, 450000, 13412, 555, 2, 9, 1, 342);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (3, '2017-12-27 20:53:02', '2018-09-15 20:53:55', 0, '逆天药神', '  一个意外,让他在星空的彼岸两地相望。三人携手,杀出了这片大陆的四方威名。他,张凡,既然获得新生,就绝不再做弱者。既然要成为强者,就必须让这片星空颤抖!“既然是我的未来,那便只能由我主宰”  ', 1, '枫叶', 340000, 213334, 3421, 42314, 2, 9, 1, 52315);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (4, '2017-12-27 20:53:02', '2018-08-16 20:53:59', 0, '锦绣风华之第一农家女1', '  前世她是铁血手腕的帝国集团总裁,却被心爱之人设计,魂归天国。 再次睁眼,眼前的三间茅草屋,一对小瘦猴。 就算是她定力再强悍,在他们喊出那声“娘”的时候,还是让她差点没跳起来。 前世活到28还是清白如兰,一个穿越就让她勉强算是B的身材,孕育出一对儿女? 当然,这还是其次,最重要的是她丫的居然是未婚生子,这在现代都遭人白眼的事情,那个天杀的能告诉她,这个身体的原主,是不是太牛叉了,居然没有被浸猪笼。 只是,当这对瘦的皮包骨的小包子在她跟前,肿着两对眼泡忍者泪花跑前跑后,就算是她再不想面对现实,也无法坐视不理。 既然让她再次重生,她势必要左手挥舞锄头,右手执笔算盘,带着一对可爱的包子,发家致富。 购田地,建豪宅,买下人,顾长工,一切都再朝着让她满意的方向前进,而那些眼红嫉妒之辈,完全都是她业余之时的消遣,根本就不是一个等级。 但是,常在河边走,哪有不湿鞋,这个道理她明白,却没想到那鞋子会湿的这么快,面对那个如同妖孽般,表面谦谦公子,风华无双,实则腹黑狡诈,怎么坑死她怎么来,还让她有火没处发。 精彩小剧场 当一对粉雕玉琢的包子被一个风华绝代的男人一手一个抱进来,君瑶真心的黑面了,泪奔了。 他们这两个没良心的到底明不明白,什么是引狼入室啊。 “多谢宁公子送他们回来,您看如今天色已晚,为了宁公子的名声,小妇人也不敢久留,宁公子请回吧。”她快步上前,一把一个把小包子从那个男人怀里蒿出来,快言快语的下了逐客令。 男人好看的眉毛微挑,随后一模情绪从眸中迅速划过,快的难以捕捉。 “无妨,我来陪陪这两个小家伙,君娘子不必多心。” “我…”她差点没被噎死,她有什么好多心的,就冲着他觊觎她的孩子,就不能让她留下。 只是她的话没有说完,就被男人贴面而来的俊彦吓得向后退去,而男人含笑的黑眸和清淡的话语,却让她差点怒火狂飙,“还是你想我把他们带回去?” 君瑶大惊,带回去?那是绝对不可能的,她的儿女,谁敢打主意,谁就没活路,话虽然很直白,却独独对他不管用。  ', 1, '席妖妖', 444902, 23, 5353, 21323, 2, 9, 1, 314);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (5, '2017-12-27 20:53:02', '2018-09-05 20:54:05', 0, '伏魔', '  富家子弟墨浞因为发现了村子中的秘密,在良心与亲情的折磨下,逃到了边境小城。因为一个香-艳而又恐怖的梦,墨浞经历了一些诡异的事,从而得知自己的前世与今生的使命。踏上藏地,历经磨难,克服了自己的心魔,战胜了...  ', 1, '一叶style', 490000, 526, 7687, 9, 2, 29, 1, 41516);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (6, '2017-12-27 20:53:02', '2018-09-10 00:54:10', 0, '强爱之独家拥有', '  她是名贵千金,他是商界精英。 他们的订婚礼上,她惨遭背叛。 父亲气血攻心当场昏倒,再也没有醒来。 自己更被未婚夫床上的女人陷害入狱. 莫仲晖这个让她又爱又恨的男人几乎成了她这三年的梦靥。 三年的牢狱,再出来,她一无所有,而他已是江城翻手为云覆手为雨的神秘角色。  ', 1, '河清海晏七七', 980000, 513, 212342, 36236, 2, 29, 1, 1142314);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (7, '2017-12-27 20:53:02', '2018-09-04 08:54:15', 0, '灭魔成圣', '  推荐《寻龙传》《魂摄天下》 作品属玄幻异界大陆风格! 可惜频道不能更改只能在奇幻混! 书友群:292...  ', 1, '等待潇湘诗社', 345004, 13, 5353, 63263, 2, 29, 1, 2314);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (8, '2017-12-27 20:53:03', '2018-09-03 21:54:27', 0, '我的合租美女总裁', '  和美女同居是一件很快乐很享受的事情吗?看看兵王曹小雷脸上蛋蛋的忧伤,大家还是醒醒吧!他好想好想告诉隔壁房间的刘薇薇,能不能别在客厅里黄瓜蘸蜂蜜吮来吮去?能不能晚上光溜溜精油按摩的时候拉好窗帘?我生理很正常,肠子很花花,爱好苍老湿,你丫别逼人太甚!  ', 1, '薯条', 890000, 5435, 3553, 543, 2, 29, 1, 412356);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (9, '2017-12-27 20:53:03', '2017-12-27 20:53:07', 0, '带着死神去穿越', '  一名地球的平凡的少年,因为一场游戏,获得死神的传承,从而穿越到另外一片陌生的大陆,从此开启了一段传奇的人生,九天星河,吾乃死神,掌控生死,判夺罪恶,我从没见过地狱,因为我的名字,便代表地狱,吾乃死神,吾名林天。(PS:单女主,爽文不虐心,主角以杀证道,杀该杀之人,不圣母,略腹黑) 各位书友要是觉得《带着死神去穿越》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!带着死神去穿越最新章节,带着死神去穿越无弹窗,带着死神去穿越全文阅读.  ', 0, '梦侍', 233000, 6326, 34252, 523, 2, 29, 1, 135);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (10, '2017-12-27 20:53:03', '2017-12-27 20:53:07', 0, '亡灵与芯片', '  一位蝉联世界冠军数载的电子竞技玩家,在一次比赛中,天降黑色闪电,带着主角张远还有一枚地球上最先进的芯片、穿越到了剑与魔法的世界。故事没有yy,情节发展有迹可寻。没有种马,所有爱情起于点滴。更没有男主虎躯一震、从者云集,有的只是同生共死积累的友情,这、就是伙伴的意义。 各位书友要是觉得《亡灵与芯片》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!亡灵与芯片最新章节,亡灵与芯片无弹窗,亡灵与芯片全文阅读.  ', 0, '冬冬东', 2559900, 5, 431, 42135, 2, 29, 1, 4124);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (11, '2017-12-27 20:53:03', '2017-12-27 20:53:08', 0, '穿越小道人', '  小李飞刀里面:“飞刀厉害?我的符咒如何?”仙剑三:“这就是千里之外取人首级的剑啊!”红楼梦里面:“贾宝玉那块通灵宝玉应该是个灵宝级的,搞来搞来。”三国演义:“撒豆成兵,黄巾力士,《太平天书》,仙术啊,张角,你别跑!”西游记:“呼,终于到了仙界了。”三体:“二向箔,看我芥子须弥之术。”漫威:“oaa?什么东西?”小道人转身,一双眼看了过来:“呵!执笔者?” 各位书友要是觉得《穿越小道人》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!穿越小道人最新章节,穿越小道人无弹窗,穿越小道人全文阅读.  ', 0, '楚骚', 455000, 342536, 23545, 53533254, 2, 29, 0, 2431);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (12, '2017-12-27 20:53:03', '2018-09-06 20:58:34', 0, '威武小娘子', '  杜筱玖做了个噩梦,梦里娘被人害死,她也没得到好下场。一睁眼:成真了!既然有人要赶尽杀绝,就别怪她以牙还牙!谁知为娘报仇意外发现身世:哭,是捡的!好不容易有个对眼的少年:噗,是舅舅!既然她的人生是一个坑连着一个坑,不如凿成一条河,放开来造作吧! 各位书友要是觉得《威武小娘子》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!威武小娘子最新章节,威武小娘子无弹窗,威武小娘子全文阅读.  ', 1, '燕七爱吃鱼', 2389400, 325, 4325, 324, 2, 29, 0, 213);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (13, '2017-12-27 20:53:03', '2018-09-10 08:45:40', 0, '冰火破坏神', '  当巨龙的时代渐渐终结,当术师们在星空下留下无数的财富和传说,一个个觉醒的少年,便开始踏上他们的征途。  ', 1, '无罪', 23452343, 325324, 52, 555, 2, 26, 0, 412);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (14, '2017-12-27 20:53:04', '2018-09-14 20:54:49', 0, '十年相恋不相知', '  十年之前,她喜欢他,而他不知道。十年之后,他爱恋她,可她却不在。一段不掺杂任何其他利益的纯情爱恋之旅,究竟恋情的终点在何方?旅途的结局又将怎样?677577335本书群,各位喜欢本书的不喜欢本书的都可以进来,只要是喜欢看小说的都可以进来聊聊 各位书友要是觉得《十年相恋不相知》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!十年相恋不相知最新章节,十年相恋不相知无弹窗,十年相恋不相知全文阅读.  ', 1, '青松不朽', 2355421, 4, 5534, 42314, 2, 26, 0, 231);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (15, '2017-12-27 20:53:04', '2018-09-14 20:54:49', 0, '终极教师', '  朱雀中学校规:   第一条,禁止师生恋!   第二条,禁止师生恋!   第三条,禁止师生恋! ———-    我坚定不移的认为穿白色半透明衬衣,里面的黑色Bra若隐若现的妹子才是最性感的女神!  ', 1, '柳下挥', 2143214, 523, 5555, 234, 2, 26, 0, 512);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (16, '2017-12-27 20:53:04', '2018-09-14 20:54:49', 0, '邪王绝宠蛇蝎嫡妃', '  “太子殿下,今日不是你毁婚,而是我毁婚。我花惊羽不嫁渣男,不嫁种猪男,要嫁便嫁宠我上天疼我入地,一生只娶一妻的男人。” 一道圣旨送到太子面前,太子脸色瞬间青黑一片,满堂宾客皆失色。 她,魍魉组织的金牌制毒师,一朝穿越成了任人欺凌的可怜太子妃,爹不疼妹不爱,还被百般欺凌。 骂我的,恶毒的骂回去。打我的,狠狠的打回去。算计我的,百倍千倍的算计回去。 可是这些渣男渣女一个个赶着送上门让她收拾,那就别怪她冷血无情,心狠手辣了,弄不死你也要弄残你。 他,帝国家喻户晓,闻之变色的嗜血邪王,从无一物入眼,却强势霸道的缠上她,眉眼灼灼,邪魅勾引:“我宠你上天,疼你入地,要不要?” 精彩对话一: “羽儿,这一次我真心诚意的向你提亲,娶你做我的东宫太子妃,未来燕云国的皇后娘娘。” “树不要皮必死无疑,人不要脸天下无敌,太子殿下的脸皮堪称一绝。” “羽儿,我错了,你原谅本宫一回吧。” “我看见你这张破脸就想弄残你,更别提上你这破船了,滚吧。” 精彩对话二: “北幽王殿下,你不是说你是断袖吗?”女子气急败坏的冷哼。 “不是我说的,是你说的。” “那你说什么难言之隐,说什么让我帮你治,原来是占我的便宜吃我的豆腐败。” “貌似本王才是比较吃亏的那一个,你吃我的豆腐比我吃你的豆腐多,”俊美霸气的男子一脸的委屈。 “意思是王爷你吃亏了?”女子微眯眼上,阴侧侧的开口。 “不吃亏,只要你对我负责就好。” “凭什么要我负责。” “本王负责也行,我宠你,我疼你,可好?”  ', 1, '吴笑笑', 3859643, 245632, 4223, 43325, 2, 26, 0, 51251);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (17, '2017-12-27 20:53:04', '2018-09-14 20:54:49', 0, '神魔霸体', ' 拓拔野逆天重生、身藏神根、手握神符、拥有前世记忆,从小开始修炼最难修炼的炼体法决神魔九变。   神魔九变,每修炼成功一变,不但肉体力量暴增,还多一些神奇的本领。   为了修炼神魔九变,拓拔野走遍无数星宇世界,闯过无数险地绝域,大战神魔神兽鬼神。   最终,神魔九变大成,成就真正的神魔霸体,无敌诸天万界。   完本老书《六道仙尊》,五百二十万字,人品保证!放心收藏!   老云新书群 229522850  ', 1, '云霆飞', 2456235, 3532, 5535, 5434, 2, 26, 0, 5154);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (18, '2017-12-27 20:53:04', '2018-09-14 20:54:49', 0, '妖娆召唤师', '  名为“妖娆”的无良少女,被一枚诡异的黑暗魔珠附身,二次穿越异世。 她是被疯子带大的小乞丐,万年不遇的“废材”负灵根。 受到黑暗魔珠影响而带有被世人唾弃的暗之力的“邪恶魔女”! 魔云宗要吞噬她:“你的力量化为我用可好?” 光明阵营要绞杀她:“魔女!哪里逃!” 强大战神要勒索她:“用这幻器,你不配!” 光与暗,皆不容她在世间存在! 善与恶,谁才陪她直捣黄龙? “想吞噬我的!把你们的宝藏都拿出来吧!” “想绞杀我的!用轮回鼎把你们都炼成活人药丹!” “想勒索我的!本姑娘要你看看什么才是强!盗!王!” 头带植系狗血牡丹皇!脚踏赤火烈焰炸毛鸡!手持杀人炼丹轮回鼎…… 强契异兽!暗驭魔仆! 召唤!神兽级以下的喽啰通通让开! “我以朱雀圣火,革新这个世界!” 且看女主以妩媚的眼波玩转世间高手,以腹黑强大的手段狂战天下群雄! 本文一对一 爆笑+女强+腹黑+成长 小恶搞,真玄幻~ 此文从无断更记录,情节精彩,欢迎各路道友热情跳坑~ ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ ————人物打油诗一首———— ◆她有一个无聊的时候就会点起“灭魔神焰”烧柴玩的疯爹爹:“妖妖,我饿,我要吃大鸡腿!” ◆她有一只人见人不爱,花见花不开的植系战兽:“我是丑八怪,嗯,妖妖说过我是丑八怪,我的眼,只比星星璀璨那么一点点,我的脸,只比先天大帝帅那么一点点,我很自卑,请不要跟我讲话。” ◆她有一个钱比命重要,有钱就是娘的少年大管家,如果问他要钱还是要命,他会直接四仰八叉倒在地上:“大爷,奴家一夜,只要一个金币。” ◆她有一个骚包的红发追求者:“来的美女们,快留下你们的‘收藏’,不然本公子滚地半月,绝不出关!” O(∩_∩)O~ ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ ----------公告板---------- ◆本文每日更新时间◆ 如无特别通知,每日上午九点左右 5000+ O(∩_∩)O~ ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 推荐玄幻好文《盛世邪凰》 BY:月清树影 她的倾情付出,终抵不过一句功高盖主。 亲友的倒戈,爱人的背叛,让她心如死灰。 唯有他依旧站在她身边,拥她入怀。 “以吾之心,予汝重生,转世之魂,生生相伴,不离不弃。契!” 浴火重生,再次睁眼,她已入魔! 且看她如何在这荆棘中破开重重迷雾,凭借着自己的努力一步步走向云端,将曾经的耻辱一同踩在脚下! 再世为人,她——注定光芒万丈! ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ ----人物认养小店--- 【疯 子】 由 羽毛 认养 【妖 娆】 由 公子陌凌 认养 【翦 羽】 由 月清树影 认养 【白 夜 一】 由 刑冷墨 认养 【瓦 伦】 由 瑕恋 认养 【龙 觉】 由 莲心紫璃 认养 【丑 丑】 由 吾依糯 认养 【元 方】 由 小残 认养 【牧野寒江】 由 兔兔 认养 【纳 多 多】 由 妍儿 认养 【麒 麟 王】 由 954637819 认养 【烈焰风鹰】 由 夏轩月 认养 【拔 莉 儿】 由 云影悠然 认养 【青 君】 由 忘情紫雪 认养 【泥 巴 团】 由 媚妆 认养 【赤 火】 由 媚妆 认养 【二 毛】 由 尤兮 认养 【海涅宗师】 由 ysfengy 认养 【姬 天 白】 由xanxus1896 认养 【 炎 】 由 夏轩月 认养 【百 里 尘】 由 小可爱 认养 【战 虎】 由 蓝 认养 【灭 云 飞】 由 月依浅雪 认养 【血 十 三】 由 由夜 认养 【六 灵 珠】 由 kanshu001 认养 【囡 囡】 由1003695331认养 ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ ----好文推荐--- 我的旧文 《纵紫》 刑冷墨 《异火焚天》 月清树影 《盛世邪凰》 兔梓 《脱线黑公主》 仙魅 《妖仙魅世》 墨墨 《哥哥是只妖》 即墨血夜 《死神成长史》  ', 1, '翦羽', 1333413, 34, 6543, 678898, 2, 26, 0, 651223);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (19, '2017-12-27 20:53:04', '2018-09-14 20:54:49', 0, '永夜君王', '  千夜自困苦中崛起,在背叛中坠落。自此一个人,一把枪,行在永夜与黎明之间,却走出一段传奇。若永夜注定是他的命运,那他也要成为主宰的王。 各位书友要是觉得《永夜君王》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!永夜君王最新章节,永夜君王无弹窗,永夜君王全文阅读.  ', 1, '烟雨江南', 235212, 6342, 2343542, 6234, 2, 26, 0, 143212);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (20, '2017-12-27 20:53:04', '2018-09-14 20:54:49', 0, '雪中悍刀行', '  有个白狐儿脸,佩双刀绣冬春雷,要做那天下第一。湖底有白发老魁爱吃荤。缺门牙老仆背剑匣。山上有个骑青牛的年轻师叔祖,不敢下山。有个骑熊猫扛向日葵不太冷的少女杀手。 这个江湖,高人出行要注重出尘装扮,女侠行走江湖要注意培养人气,宗派要跟庙堂打好关系。 而主角,则潇洒带刀,把江湖捅了一个通透。 各位书友要是觉得《雪中悍刀行》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!雪中悍刀行最新章节,雪中悍刀行无弹窗,雪中悍刀行全文阅读.  ', 1, '烽火戏诸侯', 35525, 353, 5345, 624, 2, 26, 0, 2314);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (21, '2017-12-27 20:53:04', '2017-12-27 20:53:05', 0, '地球灾变', '  【2017科幻征文】参赛作品 各位书友要是觉得《地球灾变》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!地球灾变最新章节,地球灾变无弹窗,地球灾变全文阅读.  ', 0, '石慌', 25254, 46236, 335, 5234, 2, 26, 0, 412);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (22, '2017-12-27 20:53:05', '2018-09-14 20:54:49', 0, '求生欲', '  这个世界,人并不是唯一的智慧生物,还有这比人更高级的生物,他们看待人的态度如何?老公,我要你杀了所有想伤害我的人。“她的野心太大,不是帮她,而是害她。”“她的一切,我负责。” 各位书友要是觉得《求生欲》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!求生欲最新章节,求生欲无弹窗,求生欲全文阅读.  ', 1, '华尔街扛把子', 56135, 6353, 5666, 2345, 2, 26, 0, 51243);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (23, '2017-12-27 20:53:05', '2017-12-27 20:53:06', 0, '都市无限取钱系统', '  自从得到无限取钱系统之后,叶凡的人生轨迹从此改变…… 每天早上醒来,不用担心没钱花,而应该担心这么多钱,要怎么花…… 只要是任何钱能够解决的问题,都不是问题,然而为了得到这些钱,不得不按照系统提示,完成一系列的任务。 任务失败的惩罚,将会是身体消失十分之一! 各位书友要是觉得《都市无限取钱系统》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!都市无限取钱系统最新章节,都市无限取钱系统无弹窗,都市无限取钱系统全文阅读.  ', 0, '飞天入地', 651341, 434, 5334, 234, 2, 26, 0, 215);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (24, '2017-12-27 20:53:05', '2017-12-27 20:53:07', 0, '荒岛饥荒', '  威珥穿越到了一片海滩上,除了脑海中的饥荒制作系统,身上别无长物。祥和的岛屿上有着潜藏黑暗和秘密,为了生存,威珥不得不卷入其中。威珥开始寻找回家的路。致命的黑暗,神秘的阴影,圣洁的星灵。 威珥会回去吗? 新书推荐:、白银霸主 、、大王饶命 、 各位书友要是觉得《荒岛饥荒》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!荒岛饥荒最新章节,荒岛饥荒无弹窗,荒岛饥荒全文阅读.  ', 0, '凝心之火', 521333, 53534, 2436, 2345, 1, 26, 0, 415126);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (25, '2017-12-27 20:53:05', '2018-09-14 20:54:49', 0, '官道之步步高升', '  青原市国资委普通科员楚天舒,因撞破办公室主任的好事而面临被发配的厄运,随后却经历了一系列匪夷所思的奇...  ', 1, '北岸', 551612, 234632, 5243, 3245, 1, 26, 0, 124);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (26, '2017-12-27 20:53:05', '2018-09-14 20:54:49', 0, '傲神刀尊', ' 一颗桀骜的心,一把不羁的刀,一个傲视仙神的不朽传奇。你是谁?别问我是谁,请与我一战!——————QQ群:51765913  ', 1, '项华', 351314, 435, 45, 2534, 1, 26, 0, 6143);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (27, '2017-12-27 20:53:05', '2018-09-14 20:54:49', 0, '侯门医女,庶手驭夫', '   ', 1, '沧海明珠', 251234, 243544, 3425, 35235, 1, 26, 0, 421342314);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (28, '2017-12-27 20:53:06', '2017-12-27 20:53:13', 0, '掠夺诸天万界', '  龙玄拥有掠夺万界的玉佩,以诸天万界的资源成无敌大主宰。武侠世界:天龙,笑傲,射雕,神雕,风云……仙侠世界:仙剑,花千骨,诛仙……动漫世界:火影,超神学院……小说世界:完美世界,斗破,遮天,斗罗……电影世界:西游降魔世界,僵尸先生,大话西游……神话世界:西游记,封神榜,洪荒…… 各位书友要是觉得《掠夺诸天万界》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!掠夺诸天万界最新章节,掠夺诸天万界无弹窗,掠夺诸天万界全文阅读.  ', 0, '我原非凡', 521222, 24325, 2345, 666, 1, 26, 0, 411235);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (29, '2017-12-27 20:53:06', '2017-12-27 20:53:07', 0, '火影之最强虫师', '  激萌的萝莉,热血的少年,为打破次元壁一往无前! 各位书友要是觉得《火影之最强虫师》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!火影之最强虫师最新章节,火影之最强虫师无弹窗,火影之最强虫师全文阅读.  ', 0, '来一刀', 544111, 325, 3434525, 623534, 1, 25, 0, 51244);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (30, '2017-12-27 20:53:07', '2018-09-14 20:54:49', 0, '陆战兵王', ' 少年从新兵蛋子一步步成长,磨练成一把隐去的刀锋,时刻为着梦想而奋斗,经历无尽的艰难困阻,最终了为真相而战斗!!   我的书友交流群:241911158,我的QQ:807457338  ', 1, '可可比尔', 355555, 45346, 543, 5234, 1, 25, 0, 51261);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (31, '2017-12-27 20:53:07', '2017-12-27 20:53:12', 0, '变身之把反派养歪了肿么破', '  激萌的萝莉,热血的少年,为打破次元壁一往无前! 各位书友要是觉得《变身之把反派养歪了肿么破》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!变身之把反派养歪了肿么破最新章节,变身之把反派养歪了肿么破无弹窗,变身之把反派养歪了肿么破全文阅读.  ', 0, '呆萌小总', 222235, 364326, 25342, 632, 1, 25, 0, 521341);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (32, '2017-12-27 20:53:07', '2018-09-14 20:54:49', 0, '唯愿情深不负婚', '  渣男和小三联手设计,让她被扣上不干净的骂名,婆婆暴打,还逼着她净身出户。她没了家,也失去了腹中刚成型的孩子。走投无路,为了复仇,只能选择爬上渣男对手的床。他是天之骄子,她本以为镜花水月后再无交集,却.. 各位书友要是觉得《唯愿情深不负婚》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!唯愿情深不负婚最新章节,唯愿情深不负婚无弹窗,唯愿情深不负婚全文阅读.  ', 1, '旧城雪', 5123566, 534, 234562, 636, 1, 25, 0, 42156);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (33, '2017-12-27 20:53:07', '2017-12-27 20:53:08', 0, '我的绝色美女特工老婆', '  【火爆新书】地下世界的王者神秘归隐,就在各界大佬都松了一口气的时候,殊不知,远在佣兵禁地的华夏,掀起了一场前所未有的波澜! 各位书友要是觉得《我的绝色美女特工老婆》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!我的绝色美女特工老婆最新章节,我的绝色美女特工老婆无弹窗,我的绝色美女特工老婆全文阅读.  ', 0, '稣牧鱼', 351235, 2435, 45325, 5353, 1, 25, 0, 42);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (34, '2017-12-27 20:53:07', '2017-12-27 20:53:10', 0, '北雄', '  本书简介: 大业六年,强盛的大隋迎来了转折点。 这一年,隋帝杨广开始准备征伐高丽,顺势拉开了隋末战乱的序幕。 接下来的几年间,天下板荡,群雄并起。 十八路反王,六十四路烟尘,草莽豪杰,门阀世家,纷纷粉墨登场,逐鹿天下。 北方突厥汗国,雄踞漠北,虎视眈眈。 内忧外患之下,一个强大的帝国,最终轰然崩塌。 这是个最具传奇色彩的时代,也同样是中原大地最为混乱黑暗的时节。 就在这样一个时候,一个来历奇异的边塞少年,带着草原的风寒,和一股满不在乎的劲头,一头扎进了这乱世漩涡之中。 各位书友要是觉得《北雄》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!北雄最新章节,北雄无弹窗,北雄全文阅读.  ', 0, '河边草', 5235132, 523, 3425, 35, 1, 25, 0, 143165);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (35, '2017-12-27 20:53:07', '2017-12-27 20:53:10', 0, '异世界的战斗奶妈', '  曾经超人气网络游戏“异世界,”曹玲敏有三个角色创下了传说记录。狂战士红昭愿,打出了“异世界”最强一击的爆发伤害;武圣朝朝暮暮,连续三次赛季拿下竞技场SOLO赛冠军;舰炮掌控者红绳结发,带领公会部下拿下七次世界级BOSS首杀;在其游戏终止营运的那一天,曹玲敏想起自己唯独没有玩过奶妈,结果等到营运时间结束,角色却无法退出游戏,拥有童颜贫乳外表的曹玲敏展开了前所未有的第四次传说…… 各位书友要是觉得《异世界的战斗奶妈》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!异世界的战斗奶妈最新章节,异世界的战斗奶妈无弹窗,异世界的战斗奶妈全文阅读.  ', 0, '夏伊水心', 5661233, 26, 35, 3462, 1, 24, 0, 4112);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (36, '2017-12-27 20:53:07', '2018-09-14 20:54:49', 0, '武极阴阳', '  天地始分阴阳,亘古平衡。有人企图以外力主宰五行大陆,颠覆世界!一个身具花瓶体质的少年,无形中成了对抗强大外力的主要人选。十二岁起步,能否担起重任?莫名魂力、五行之子、红颜知己、阴阳互修……这里是武动乾坤的精彩世界!P:新人新书,更新稳定。书友群249540907。请多支持!  ', 1, '楚松源', 455432, 345, 3, 23634, 1, 24, 1, 4145);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (37, '2017-12-27 20:53:08', '2017-12-27 20:53:09', 0, '苍灵主宰', '  万灵世界,天地无垠,宗族千万,强人辈出!苍穹之下,表面群雄割据,内里暗流涌动,只待大浪淘沙,伺机乘风而上……平凡小子韩烨,习神秘功法横空出世,踏复仇之路,入修炼征途,掀起不可阻挡之洪流!自此,山河日月变…… 各位书友要是觉得《苍灵主宰》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!苍灵主宰最新章节,苍灵主宰无弹窗,苍灵主宰全文阅读.  ', 0, '人生好梦', 561355, 6666, 62, 54325, 1, 24, 1, 2143);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (38, '2017-12-27 20:53:08', '2017-12-27 20:53:11', 0, '定位寻宝系统', '  别人用聊天软件泡妞把妹子,轻松一下附近人就是美女如云...可是我的附近人里,没有什么美女直播...搜索一下附近人,精确定位出来的...不是灵丹妙药,就是古董文物...上到天材地宝,下到补肾壮阳...都只因脑海之中有着一个系统,可以看到别人看不到的搜索信息...别说我身上带着BUG,我真的就是想泡妹子而已...设定好自己的人生,走出一个不一样的人生巅峰... 各位书友要是觉得《定位寻宝系统》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!定位寻宝系统最新章节,定位寻宝系统无弹窗,定位寻宝系统全文阅读.  ', 0, '沐雪沉风', 123344, 5325, 266, 3425, 1, 24, 1, 12342);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (39, '2017-12-27 20:53:08', '2018-09-14 20:54:49', 0, '不败战神', '  少年,就是要在阳光下挥洒汗水! 少年,就是要不断战斗,然后胜利! 无尽天路之旅,无尽征途,见证少年的热血和传奇! 心怀野望,烈血如燃! 永远少年,不败战神! 各位书友要是觉得《不败战神》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!  ', 1, '方想', 54633, 2534, 3262, 63263, 1, 24, 1, 2521);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (40, '2017-12-27 20:53:08', '2018-09-14 20:54:49', 0, '至尊神帝', '  至尊神帝的简介:【重磅推荐低调哥完本小说《至尊龙帝》与《逍遥狂少》】一个从小被人嘲笑为废物的少年,在一次危险的狩猎中,遭人打断四肢,石沉深潭,不料却因祸得福,收了一名上古仙人的残魂为仆。在仙仆的激励下,他凭借强悍的意志力与不懈的努力,在庄中比武大会上一鸣惊人,彻底告别了废物的称号,之后以武入道,冲破了体内堵塞的经脉,拥有了五行元力的超强修炼天赋。从此,叶天决心倾毕生之力,逆天改命,去追寻修炼的极致境界。一路杀仙弑神,彪悍的修炼之路无需解释。  ', 1, '低调哥', 432513, 4532, 32234, 3254, 1, 22, 1, 51);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (41, '2017-12-27 20:53:08', '2018-09-14 20:54:49', 0, '紫阳', '  紫阳  ', 1, '风御九秋', 5513243, 276236, 32445, 6666, 1, 22, 1, 245);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (42, '2017-12-27 20:53:08', '2017-12-27 20:53:10', 0, '刘备的日常', '  【历史新纪元脑洞风暴征文】参赛作品 各位书友要是觉得《刘备的日常》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!刘备的日常最新章节,刘备的日常无弹窗,刘备的日常全文阅读.  ', 0, '熏香如风', 521111, 6234, 264534, 3425, 1, 22, 1, 6124);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (43, '2017-12-27 20:53:08', '2017-12-27 20:53:12', 0, '狂武仙皇', '  我为蝼蚁,世人可欺,世人为蝼蚁,我可欺世人。一息上存,战斗不止。即便是死,也要死的惊天动地。 各位书友要是觉得《狂武仙皇》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!狂武仙皇最新章节,狂武仙皇无弹窗,狂武仙皇全文阅读.  ', 0, '秋风若水', 356623, 626, 62, 23466, 1, 22, 1, 5124);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (44, '2017-12-27 20:53:08', '2018-09-14 20:54:49', 0, '新刺客列传', '  躲在阴暗的角落,冷静思考,仔细观察周围的一切动向,更要小心同行来抢生意。某一刻,目标出现,迎面微笑走过。刺出一剑! 各位书友要是觉得《新刺客列传》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!新刺客列传最新章节,新刺客列传无弹窗,新刺客列传全文阅读.  ', 1, '世尘风', 351334, 5234, 2345, 3425, 1, 22, 1, 42315);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (45, '2017-12-27 20:53:08', '2018-09-14 20:54:49', 0, '不朽神瞳', '  这是一个神秘的世界,这里有最强的武道,最神秘的瞳术!八世历,九为尊!一代太古大能,历经八世磨砺而归,他想不明白,这一世为什么那么多法宝找他认主,为什么会有那么多美女来给他暖床,但是他知道,他将拥美并踩着敌人的尸体,走上至尊之路!萧寻:“这一世,我要让所有人都在我的脚下颤抖!绝色美女们,来陪哥哥快乐双修。”  ', 1, '风舞天下', 566666, 525, 25342, 45326, 1, 22, 1, 51261);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (46, '2017-12-27 20:53:09', '2017-12-27 20:53:09', 0, '花都小仙医', '  小仙医携造化宝塔,纵横都市,宝塔在手,美女我有!赚最多的钱,踩最牛的人,娶最美的老婆,专治各种不服。 各位书友要是觉得《花都小仙医》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!花都小仙医最新章节,花都小仙医无弹窗,花都小仙医全文阅读.  ', 0, '十三刀', 542135, 2642, 3245, 26346, 1, 22, 1, 2143);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (47, '2017-12-27 20:53:09', '2018-09-14 20:54:49', 0, '女神总裁爱上我', '  身怀异能却甘于平淡的酒店小保安,与美若天仙却冷若冰霜的总裁有了交集,她主动求婚他却说不,领证当晚陪伴他的居然是另个女人。从此,各色美女投怀送抱,要命的是每个女人都带着一堆甩不掉的麻烦……  ', 1, '愤怒小鸟', 111111, 62624, 52352, 6234, 1, 22, 1, 23415);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (48, '2017-12-27 20:53:09', '2017-12-27 20:53:18', 0, '萌宝小神龙:妖皇盛宠不良妃', '  震惊!绝美少女棺材产子,儿子居然是个头上有犄角的妖怪。凰清妤捶地大哭。奇怪!为什么她都有孩子了,还有男人纠缠不休啊?凰清妤哭笑不得。某天,妖孽男子将她咚在树上,“撩完就想跑,你要对我负责!”她勾唇一笑,将他反压,“抱歉,我更喜欢在上面。”作为一代医毒双绝的杀手女王,说她是废物?放屁,我来告诉你什么是绝世天才!只是万万没想到惹上了一个比她更绝世更妖孽的男人,从此你追我逃,你杀人我递刀,一起称(huo)霸(hai)天下。 各位书友要是觉得《萌宝小神龙:妖皇盛宠不良妃》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!萌宝小神龙:妖皇盛宠不良妃最新章节,萌宝小神龙:妖皇盛宠不良妃无弹窗,萌宝小神龙:妖皇盛宠不良妃全文阅读.  ', 0, '姒糖', 353251, 252, 24, 26345, 1, 22, 1, 4126);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (49, '2017-12-27 20:53:09', '2018-09-14 20:54:49', 0, 'X处首席特工皇妃', '   ', 1, '逐云之巅', 3521434, 262345, 2543, 6236, 1, 22, 1, 416213);
INSERT INTO `book`(`id`, `create_time`, `update_time`, `status`, `name`, `intro`, `icon`, `author`, `words`, `collection`, `goods`, `click`, `site`, `sort`, `vip`, `popularity`) VALUES (50, '2017-12-27 20:53:09', '2017-12-27 20:53:10', 0, '九转圣灵决', '  五百年前,他心爱的女子,竟爬上了自己同父异母哥哥的床。毒酒穿肠,一代天骄,就此陨落。五百年后,他重生归来。却发现毒害他的狗男女。已统领七海八州。号称“凤后”“龙帝”威震八方。当龙吟剑出,雷霆破空,震破苍穹,山河破碎,星辰陨落。“待我重修30年,必将踏破星河,血洗金銮殿!”……… 各位书友要是觉得《九转圣灵决》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!九转圣灵决最新章节,九转圣灵决无弹窗,九转圣灵决全文阅读.  ', 0, '雨墨风起', 511333, 2534, 2345, 6234524, 1, NULL, 1, 51262);

创建索引

使用 postman 等工具创建 es 索引,其中使用到了 ik 以及 pinyin 分词器,具体配置可以参考我前面的文章。

PUT: http://192.168.200.192:9200/novel

{
    "settings":{
        "number_of_shards":5,
        "number_of_replicas":1,
        "analysis":{
            "analyzer":{
                "pinyin_analyzer":{
                    "tokenizer":"ik_smart",
                    "filter":[
                        "full_pinyin_no_space",
                        "full_pinyin_with_space",
                        "first_letter_pinyin"
                    ]
                }
            },
            "filter":{
                "full_pinyin_no_space":{
                    "type":"pinyin",
                    "first_letter":"none",
                    "padding_char":""
                },
                "full_pinyin_with_space":{
                    "type":"pinyin",
                    "first_letter":"none",
                    "padding_char":" "
                },
                "first_letter_pinyin":{
                    "type":"pinyin",
                    "first_letter":"only",
                    "padding_char":""
                }
            }
        }
    },
    "mappings":{
        "book":{
            "properties":{
                "id":{
                    "type":"integer"
                },
                "words":{
                    "type":"integer"
                },
                "intro":{
                    "analyzer":"ik_smart",
                    "search_analyzer":"ik_smart",
                    "type":"text"
                },
                "name":{
                    "analyzer":"pinyin_analyzer",
                    "search_analyzer":"pinyin_analyzer",
                    "type":"text"
                },
                "sort":{
                    "type":"integer"
                },
                "updatetime":{
                    "type":"date",
                    "format":"yyyy-MM-dd HH:mm:ss"
                },
                "vip":{
                    "type":"boolean"
                },
                "site":{
                    "type":"integer"
                },
                "author":{
                    "analyzer":"pinyin_analyzer",
                    "search_analyzer":"pinyin_analyzer",
                    "type":"text"
                },
                "collection":{
                    "type":"integer"
                },
                "click":{
                    "type":"integer"
                },
                "popularity":{
                    "type":"integer"
                },
                "goods":{
                    "type":"integer"
                },
                "status":{
                    "type":"integer"
                }
            }
        }
    }
}

注意,这里索引的所有字段都是小写的,不要包含大写,否则后续会出现问题。
索引创建好了之后,安装 logstash。

安装 logstash

Tips: 因为 logstash 启动的时候,会占用较高的 CPU ,建议不要放在 es 集群的服务器上,最好换一台服务器进行安装。

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.0.tar.gz

tar -xvf logstash-6.4.0.tar.gz

因为建立索引需要使用到 logstash-input-jdbc,所以先配置这个插件,这个插件在 logstash 5.0 之后就默认自带了,无需再次安装

配置 logstash同步之全量同步

## 进入 logstash 根目录
cd /usr/local/es/logstash-6.4.0

## 创建存放 logstash-input-jdbc 相关配置以及依赖的目录
mkdir logstash-input-jdbc

cd logstash-input-jdbc

## 创建两个目录
mkdir lib & mkdir conf

## 下载 jdbc 所需的 mysql 驱动到 lib 目录
wget http://central.maven.org/maven2/mysql/mysql-connector-java/6.0.6/mysql-connector-java-6.0.6.jar -P lib/

## 进入 conf/ 目录
cd conf/

## 创建两个文件,一个是 jdbc 的 sql,另一个是 logstash-input-jdbc 的配置文件

vim mysql2es.sql

首先编写 sql, 构造索引所需的数据。由于是第一次同步到 es,所以进行全量同步,不过这里的全量也并非是一次性把查出库内所有数据,而是伪全量的增量同步。

mysql2es.sql 内容为

SELECT
	`id`,
	IFNULL( `update_time`, '1970-01-01 08:00:00' ) AS `updatetime`,
	`status`,
	`name`,
	IFNULL( `intro`, '' ) AS `intro`,
	`author`,
	`words`,
	`collection`,
	`goods`,
	`click`,
	`site`,
	`sort`,
	`vip`,
	`popularity` 
FROM
	book 
WHERE
	id >= :sql_last_value and id < :sql_last_value + 11

注意为了避免一次性查询,对数据库造成太大压力,因此这里使用了增量的方式来完成初始化同步到 es,这里的 :sql_last_value 是 logstash 上一步同步的最后的值,这里为 id,也可以是时间。因为演示用的测试数据较少,所以每次只同步了 10 条记录,如果实际使用,一次同步 1000 条比较合适,即 :sql_last_value + 1001

sql 查询出的字段名要与索引字段名称对应上,否则无法映射同步。

这里的 mysql2es.sql 将在 logstash-input-jdbc 中用到,创建文件 mysql2es.conf

vim mysql2es.conf

mysql2es.conf 的内容是:

input {
    stdin {
    }
    jdbc {
      # 数据库
      jdbc_connection_string => "jdbc:mysql://192.168.199.192:3306/novel"
      # 用户名密码
      jdbc_user => "root"
      jdbc_password => "123456"
      # jar包的位置
      jdbc_driver_library => "/usr/local/es/logstash-6.4.0/logstash-input-jdbc/lib/mysql-connector-java-6.0.6.jar"
      # mysql的Driver
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      # 读取这个sql
      statement_filepath => "/usr/local/es/logstash-6.4.0/logstash-input-jdbc/conf/mysql2es.sql"
      # 指定时区
      jdbc_default_timezone => "Asia/Shanghai"
      # 每分钟执行一次同步(分 时 天 月 年),比如每十分钟(*/10 * * * *)
      schedule => "* * * * *"
      #索引的类型
      type => "book"

      use_column_value => "true"
      #tracking_column_type: 递增字段的类型,numeric 表示数值类型, timestamp 表示时间戳类型
      tracking_column_type => "numeric"
      # 递增字段
      tracking_column => "id"
      # 保存每次同步时递增字段的最后一个值到这个文件
      last_run_metadata_path => "/usr/local/es/logstash-6.4.0/logstash-input-jdbc/conf/full_sync"
    }
}

filter {

    json {
        source => "message"
        remove_field => ["message"]
    }
}

output {
    elasticsearch {
        hosts => "192.168.199.192:9200"
        # index 索引名
        index => "novel"
        # 需要关联的数据库中有有一个id字段,对应索引的id号
        document_id => "%{id}"
    }
    stdout {
        codec => json_lines
    }
}

启动logstash同步

/usr/local/es/logstash-6.4.0/bin/logstash -f /usr/local/es/logstash-6.4.0/logstash-input-jdbc/conf/mysql2es.conf

启动后稍等一会儿,如果配置正确会打印出执行的 sql:

SELECT `id`,IFNULL(`update_time`,'1970-01-01 08:00:00') AS `updatetime`,`status`,`name`,IFNULL(`intro`,'') AS `intro`,`author`,`words`,`collection`,`goods`,`click`,`site`,`sort`,`vip`,`popularity` FROM book WHERE id> 0 AND id< 0+11

查看 ElasticSearchHead 控制台,发现也已经有了 10 条索引数据。
由于每次同步 10 条,每分钟同步一次,5分钟后,测试的 50条记录也已经全部被同步到 es 里了。

ctrl + c 停止同步进程,查看文件

cat /usr/local/es/logstash-6.4.0/logstash-input-jdbc/conf/full_sync

文件中的数字正是上次最后同步的 id

logstash增量同步

根据 id 进行同步,如果对数据库中已被同步到 es 的数据进行了修改,这个数据也不会被同步更新到 es 当中去。

根据 id 每次同步 1000 条,这种同步方式也只适合第一次全量进行初始化时候使用,后续增量同步最好根据时间戳的方式完成。

修改 mysql2es.sql

SELECT
	`id`,
	IFNULL( `update_time`, '1970-01-01 08:00:00' ) AS `updatetime`,
	`status`,
	`name`,
	IFNULL( `intro`, '' ) AS `intro`,
	`author`,
	`words`,
	`collection`,
	`goods`,
	`click`,
	`site`,
	`sort`,
	`vip`,
	`popularity` 
FROM
	book 
WHERE
	update_time >= convert_tz(:sql_last_value, '+00:00','-08:00')
	order by update_time asc

注意这里使用到了 convert_tz 这个函数,原因是 logstash 会在同步时在最后同步时间增加 8 个小时,因此需要使用函数,减去 8 个小时才是正确的时间。 因为logstash 记录最后一次同步的值是最后一条记录的,所以,最好根据 update_time 进行升序排序,即取的值是离现在最近的时间。

修改 mysql2es.conf

input {
    stdin {
    }
    jdbc {
      # 数据库
      jdbc_connection_string => "jdbc:mysql://192.168.199.192:3306/novel"
      # 用户名密码
      jdbc_user => "root"
      jdbc_password => "123456"
      # jar包的位置
      jdbc_driver_library => "/usr/local/es/logstash-6.4.0/logstash-input-jdbc/lib/mysql-connector-java-6.0.6.jar"
      # mysql的Driver
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      # 读取这个sql
      statement_filepath => "/usr/local/es/logstash-6.4.0/logstash-input-jdbc/conf/mysql2es.sql"
      # 指定时区
      jdbc_default_timezone => "Asia/Shanghai"
      # 每分钟
      schedule => "* * * * *"
      #索引的类型
      type => "book"

      use_column_value => "true"
      #tracking_column_type: 递增字段的类型,numeric 表示数值类型, timestamp 表示时间戳类型
      tracking_column_type => "timestamp"
      # 递增字段
      tracking_column => "updatetime"
      # 保存每次同步时递增字段的最后一个值到这个文件
      last_run_metadata_path => "/usr/local/es/logstash-6.4.0/logstash-input-jdbc/conf/incr_sync"
    }
}

filter {

    json {
        source => "message"
        remove_field => ["message"]
    }
}

output {
    elasticsearch {
        hosts => "192.168.199.192:9200"
        # index 索引名
        index => "novel"
        # 需要关联的数据库中有有一个id字段,对应索引的id号
        document_id => "%{id}"
    }
    stdout {
        codec => json_lines
    }
}

修改增量的字段为 updatetime,且字段类型设置为 timestamp,
指定记录最后同步时间的文件为 incr_sync ,同时在 conf 目录下创建这个文件 incr_sync,设置一下初始值,即同步大于设置这个值的数据。

cd /usr/local/es/logstash-6.4.0/logstash-input-jdbc/conf/
vim incr_conf

# 文件内容如下,这里具体时间根据你的情况自行修改

--- !ruby/object:DateTime '2018-09-04 16:47:14.000000000 Z'


## 注意修改只需要改 2018-09-04 16:47:14 这一部分,其他地方就不要改,改了格式可能会不对。

保存退出,执行同步命令

/usr/local/es/logstash-6.4.0/bin/logstash -f /usr/local/es/logstash-6.4.0/logstash-input-jdbc/conf/mysql2es.conf

过一会儿,正常输出 sql 语句

SELECT `id`,IFNULL(`update_time`,'1970-01-01 08:00:00') AS `updatetime`,`status`,`name`,IFNULL(`intro`,'') AS `intro`,`author`,`words`,`collection`,`goods`,`click`,`site`,`sort`,`vip`,`popularity` FROM book WHERE update_time> '2018-09-04 16:47:14' order by update_time asc

incr_sync 文件中的值,会因为每次同步同步取的是最后一条记录的值,所以最好对时间进行排序

配置文件中,当在input的jdbc下,增加type属性时,会导致该索引下增加type字段。所以sql查询出的字段不要用type,如果有,as成其他的名字,不然的话,这里判断会有异常

logstash 同步后台运行

上面的运行命令如果推出终端或者按下 ctrl + c,同步就会终止,所以我们要让同步任务在后台运行。

nouhup /usr/local/es/logstash-6.4.0/bin/logstash -f /usr/local/es/logstash-6.4.0/logstash-input-jdbc/conf/mysql2es.conf &

使用 nohup 和 * 号将要执行的语句包裹起来,就可以实现后台运行了,同时会在当前执行命令的目录生成一个 nohup.out 的文件,这里 logstash 的运行日志会被写入到这个文件当中。

tail -fn300 nohup.out

有疑问?

欢迎来信,给我写信

参考

posted @ 2018-11-15 22:54  WeJan1  阅读(643)  评论(0编辑  收藏  举报