[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
相关推荐
3. `csft_rtsinykk.conf`和`csft_mysql.conf`可能分别是实时索引和MySQL数据源的配置文件,它们定义了如何与数据库交互,以及如何处理实时更新的索引。 **创建和更新索引**: 1. 使用`sphinxindexer`工具创建或更新...
总结,安装和配置CoreSeek在CentOS 6.5上虽然涉及到多个步骤,但只要按照上述步骤操作,就能成功搭建一个高效、稳定的全文检索环境。记住,每个环节都要仔细检查,确保所有依赖都正确安装,避免出现运行时错误。希望...
CentOS Apache 配置详解 Apache 是一个流行的网页服务器软件,CentOS 也是一个流行的 Linux 发行版。在本文中,我们将详细介绍如何在 CentOS 上配置 Apache,以便实现网页服务器的功能。 一、 Apache 的安装和...
本文将详细讲解如何在CentOS7系统中配置本地YUM源。 首先,你需要一个包含所有所需软件包的本地仓库。通常,你可以从官方网站或其他可靠的来源下载完整的CentOS7 ISO镜像,或者从网络上下载完整的软件包仓库。这些...
CentOS 7.9 安装配置 vsftpd 在本文中,我们将详细介绍如何在 CentOS 7.9 上安装和配置 vsftpd,以实现匿名用户的上传和下载操作。 一、关闭防火墙 在配置 vsftpd 之前,需要关闭防火墙,以免防火墙的限制导致-...
CentOS 7 配置 SSH 服务 CentOS 7 配置 SSH 服务是 Linux 环境下部署 SSH 服务实现本机远程连接服务器的必备技能,尤其是运维人员。下面将详细介绍 CentOS 7 设置 SSH 服务以及端口的修改。 一、安装 SSH 服务 在...
"CentOS 7配置yum源" CentOS 7 配置 yum 源是 Linux 运维中的一项重要任务。yum 源是 CentOS 操作系统中的一种软件包管理器,负责管理和安装软件包。正确配置 yum 源可以提高软件包的安装速度和可靠性。 配置 yum...
在 CentOS 系统中,配置本地 Yum 源库是一项重要的任务,特别是在没有网络连接或者网络不稳定的情况下,可以通过本地 Yum 源库来安装和更新软件包。以下是一步一步教你如何在 CentOS 上配置本地 Yum 源库。 首先,...
【标题】:“CENTOS集群配置”涉及的知识点 在Linux操作系统领域,CentOS是一个非常流行的开源发行版,常被用于服务器环境,特别是构建集群系统。本主题“CENTOS集群配置”着重于如何在CentOS 5.3版本上搭建一个...
CentOS完全配置手册涵盖了从安装到日常维护的所有关键环节,对于想要深入了解和管理Linux系统的用户来说,是一份非常宝贵的资源。通过深入学习和实践,你可以掌握在企业环境中部署和维护CentOS系统的能力,提升自己...
### CentOS 7 syslog日志转发配置详解 #### 一、Syslog简介 Syslog是一种广泛应用于网络设备的日志记录协议,主要用于将系统日志信息发送到特定的日志服务器上进行集中管理和监控。这对于大型网络环境来说尤其重要...
CentOS7配置NAT模式网络详细步骤,学习
Centos7配置iscsi多路径,自己已经在实际生产环境中实践
Debian与CentOS系统配置对比
VMWare-CentOS网络配置,有图有真相,描述详尽,欢迎点赞!
CentOS 6 IPv6 IP 配置指南 CentOS 6 IPv6 IP 配置是指在 CentOS 6 操作系统中配置 IPv6 协议栈的过程。IPv6 是一种新的 Internet 协议,旨在取代传统的 IPv4 协议。IPv6 协议栈提供了更多的地址空间,提高了网络...
centos7.0配置firewall,开启默认端口,查看端口,修改端口
CentOS 5.3 配置 DNS 详解 CentOS 5.3 配置 DNS 需要安装相应的软件包,包括 bind、bind-libs、bind-chroot、bind-utils 和 caching-nameserver。这些软件包可以使用 rpm 命令进行安装。安装完成后,需要配置 DNS ...
CentOS 7 配置局域网 YUM 源是指在局域网中搭建一个 YUM 源服务器,以便局域网中的 CentOS 7 主机可以从该服务器上下载和安装软件包。下面是配置局域网 YUM 源的步骤: 一、挂载系统 ISO 光驱文件 首先,需要挂载...