设为首页 收藏本站
查看: 580|回复: 0

[经验分享] [centos]coreseek配置模拟实时索引

[复制链接]

尚未签到

发表于 2016-5-11 09:46:07 | 显示全部楼层 |阅读模式
  [1] 有这么一种常见的情况:整个数据集非常大,以至于难于经常性的重建索引,但是每次新增的记录却相当地少。一个典型的例子是:一个论坛有1000000个已经归档的帖子,但每天只有1000个新帖子。
  在这种情况下可以用所谓的“主索引+增量索引”(main+delta)模式来实现“近实时”的索引更新。
  这种方法的基本思路是设置两个数据源和两个索引,对很少更新或根本不更新的数据建立主索引,而对新增文档建立增量索引。在上述例子中,那1000000个已经归档的帖子放在主索引中,而每天新增的1000个帖子则放在增量索引中。增量索引更新的频率可以非常快,而文档可以在出现几分种内就可以被检索到。
  确定具体某一文档的分属那个索引的分类工作可以自动完成。一个可选的方案是,建立一个计数表,记录将文档集分成两部分的那个文档ID,而每次重新构建主索引时,这个表都会被更新。
  
  [2] 第一步要先创建增量索引表sph_counter

CREATE TABLE sph_counter
(
counter_id INTEGER PRIMARY KEY NOT NULL,
max_doc_id INTEGER NOT NULL
);
  
  [3] 第二步,修改配置文件

source src1{
type = mysql
sql_host = localhost
sql_user = root
sql_pass =
sql_db = test
sql_port = 3306
sql_query_pre = SET NAMES utf8
sql_query = SELECT id,title,content,create_time FROM ps_news
sql_attr_uint = id
sql_attr_timestamp  = create_time
sql_query_info_pre  = SET NAMES utf8
}
index src1{
source = src1
path = /usr/local/coreseek/var/data/src1/
docinfo = extern
mlock = 0
morphology = none
min_word_len         = 1
html_strip = 0
charset_type = zh_cn.utf-8
charset_dictpath = /usr/local/mmseg3/etc/
#charset-table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
#ngram_len = 1
#ngram_chars = U+3000..U+2FA1F
}
#global indexer
indexer
{
mem_limit            = 128M
}
#searchd
searchd
{
listen              = 9312
read_timeout        = 5
max_children        = 30
max_matches         = 1000
seamless_rotate     = 0
preopen_indexes     = 0
unlink_old= 1
pid_file= /usr/local/coreseek/var/log/searchd_rtindex.pid
log = /usr/local/coreseek/var/log/searchd_rindex.log      
query_log = /usr/local/coreseek/var/log/query_rtindex.log
}
  
  [3] 写3个脚本,让系统自动生成增量索引和合并索引和重建索引

#delta.sh文件
#!/bin/sh
/usr/local/coreseek/bin/indexer delta --rotate
#main.sh文件
#!/bin/sh
/usr/local/coreseek/bin/indexer --all --rotate
#merge.sh文件
#!/bin/sh
/usr/local/coreseek/bin/indexer --merge main delta --rotate --merge-dst-range deleted 0 0
  
  [4] 写计划任务每隔一分钟执行一遍delta.sh,每五分钟执行一遍merge.sh,每天1:30执行main.sh
  

*/1 * * * * /bin/sh /usr/local/coreseek/sh/delta.sh
*/5 * * * * /bin/sh /usr/local/coreseek/sh/merge.sh
30 1 * * * /bin/sh /usr/loca/coreseek/sh/main.sh

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-215480-1-1.html 上篇帖子: 解决CentOS 6不能访问外网 下篇帖子: centos挂载windows共享目录
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表