coreseek或者sphinx的实时索引制作

分类: SQL/NoSQL,服务器,分享  • 发布时间: 2015-04-23 17:08:00  • 浏览量:15573

本篇文章接上篇:coreseek全文检索的安装配置 ,两篇是接着的,单独看这篇有可能会迷糊。

关于数据源的名字几个说明,这些名字你可以根据自己的实际情况更改,甚至你用默认的也行,如果你用的不是这几个名字,你需要在下面的步骤中记得调换:

主数据源的名字:main,主索引的名字:main

增量数据源的名字:delta,增量索引的名字:delta

下面是做实时索引的步骤:

第一步:创建计数器,在mysql中创建一个表

DROP TABLE IF EXISTS `sphinx_count`;
CREATE TABLE `shpinx_count` (
  `counter_id` tinyint(1) NOT NULL AUTO_INCREMENT,
  `max_doc_id` int(11) NOT NULL,
  PRIMARY KEY (`counter_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


第二步:修改配置文件

vi /usr/local/coreseek/etc/csft.conf

在主数据源部分找到:sql_query,在它前面加入以下内容:

sql_query_pre           = REPLACE INTO sphinx_count SELECT 1,MAX(id) FROM news

然后再将sql_query的值改为:

SELECT id, title, content FROM news WHERE id <= ( SELECT max_doc_id FROM sphinx_count WHERE counter_id=1 )

在增量数据源配置部分进行如下修改:将这两句添加到增量数据源区域

sql_query_pre           = SET NAMES utf8
sql_query               = SELECT id, title, content FROM news WHERE id > ( SELECT max_doc_id FROM sphinx_count WHERE counter_id=1 )

在主索引中不用修改


增量索引中添一下使用的数据源名称,如果已经有,就不用添加了,直接改成你是臃肿的数据源名称即可

source=delta

保存配置


第三步:启动searchd服务,做索引测试

启动服务命令:

/usr/local/coreseek/bin/searchd

关闭服务命令:

/usr/local/coreseek/bin/searchd --stop

接下来开始测试

添加一条记录

INSERT INTO news(title,content,catid) VALUES('作为一个党员','作为一名共产党员,自身确实存在很多不足,必须引起高度重视,采取果断措施,切实加以 解决,努力改造自己的主观世界,在树立正确的世界观、人生观、价值观上下功夫;在加强 党性修养和党性锻炼上下功夫;在提高自身的 自今年 5 月份以来,本人除安排部署镇党委深入开展“创先争优”活动外,还以一名普通共 产党员的身份积极参加各项学习活动,系统的学习了中央、省、市、区委关于开展“创先争 优”活动的相关文件和各级领导的重要讲话,特别是认真学习了《党章》 ,撰写了心得体会 和学习读书笔记。同时,联系工作和思想实际,边学习边回顾,边学习边思考,对照党章规 定的党员义务和党员领导干部的基本条件, 对照新时期共产党员先进性的标准, 并通过意见 建议征求,听取了来自方方面面的意见建议,认真查找了自己在思想、作风、工作方面存在 的问题,分析了产生问题的思想根源,明确了努力方向和改进措施。 一、个人存在的主要问题和不足 通过前一阶段的学习, 自己对过去的思想、 学习和工作进行了深刻反思, 觉得对照 “五个好” 和“五带头”的要求,主要存在三个方面的差距: 1、思想观念与形势发展的要求还存在差距。主要表现在:在农村经济发展上视野不广,在 产业结构调整中力度还不够,一些主导项目发展规模不大,没有创出本地的名牌。镇域经济 没有较大突破。 造成这此问题的原因主要是自己有过于求稳的倾向, 缺乏开拓创新意识和敢 为人先的精神。一个乡镇,经济发展快慢、事业成功与否,关键看这个地方的决策层思想是 否真正解放、观念真正更新,这次征求意见时,一些基层干部和群众对我们提出了很多期望 和建议,要求我们进一步放宽政策,加大对外招商力度,培养新的经济增长点,谋求新的经 济发展,我做为一个乡镇的党委负责人,必须正确估价我们面临的经济形势和挑战,着眼大 发展、理清大思路、制定大举措,使我镇尽快摆脱经济发展徘徊不前的局面,在镇域经济突 破上取得新进展。 2、工作实际与群众的期望还存在差距。通过这次意见建议征求,我了解到群众对我的期望 值很高。当前,广大群众增收缓慢,镇财政实力不强,一些群众普遍关心的热点难点问题没 有从根本上得到解决, 我们的工作中还存在着服务不到位的问题, 这也势必影响全镇新农村 建设整乡推进目标的全面实现',2)

更新增量索引

/usr/local/coreseek/bin/indexer delta --rotate

在增量索引中搜索

/usr/local/coreseek/bin/search 党员 -i delta

在主索引中搜索

/usr/local/coreseek/bin/search 党员 -i main

以上测试会发现:在增量索引中可以搜索到数据,在主索引中搜索不到有数据


为了保险起见,我们再测试一遍

再添加一条数据

INSERT INTO news(title,content,catid) VALUES('我们共产党还是很牛逼的,绝对不拿群众一针一线','分分钟钟弄死你,你信不信,打人不打脸,作为一个优秀的共产党员,我是不能这么做,但是我手里的枪你吃得消吗?',2)

更新增量索引

/usr/local/coreseek/bin/indexer delta --rotate

在增量索引中搜索

/usr/local/coreseek/bin/search 党员 -i delta

在主索引中搜索

/usr/local/coreseek/bin/search 党员 -i main

这时在增量索引中有数据,在主索引中没有数据,依然如此,说明我们的配置没啥问题


接下来我们更新一下所有的索引

/usr/local/coreseek/bin/indexer --all --rotate

在增量索引中搜索

/usr/local/coreseek/bin/search 牛逼 -i delta

在主索引中搜索

/usr/local/coreseek/bin/search 牛逼 -i main

这时在增量索引中没有数据了,在主索引中有数据


到了这一步我们可以发现:我们每隔一段时间(根据自己的实际情况几分钟到几小时不等)更新一下增量索引,每天更新一下主索引就可以了,虽然还是有点延迟,但是实时性基本应该在可以接受的范围内,在linux下,这些操作我们可以写一段脚本,然后使用定时任务来完成,等闲了我把这个脚本写写,这会要去忙了


文章标签: 索引, 配置, coreseek, sphinx