1、在多数情况下,因为Coreseek索引速度高达10MB/s,所以只需要创建一个索引源即可满足需求,但是在数据量随时激增的大型应用中(如SNS、评论系统等),单一的索引源将会给indexer造成极大的性能负荷

2、增量索引能够在一定程度上提升Coreseek索引性能,降低CPU使用率。增量索引的原理非常简单,即使用“主索引+增量索引”的方式创建索引。其中主索引存放放50%以上的数据量,增量索引表通常只需要存放较近插入的数据即可(增量索引表允许有多个索引表组成)。增量索引是通过主从素银继承实现的,继承的格式为“增量索引:父索引”,如以下代码所示:

#主索引
source main
{ } #生成索引
index main
{ } # 增量索引
source delta:main
{ }
#delta
index delta:main
{ }
#全局index定义
indexer
{
  mem_limit = 128M
}
#searchd服务定义
searchd
{ }

  通过继承,增量索引配置就拥有了主索引全部配置信息。淡然也可以重新设置增量索引的配置信息,这些配置信息将覆盖主索引配置项。如以下代码所示:

#源定义
source mysql
{
type = mysql sql_host = localhost
sql_user = test
sql_pass = root
sql_db = kp_account
sql_port = 3306
sql_query_pre = SET NAMES utf8 sql_query = SELECT goods_id, goods_id as gid, goods_name, add_time FROM fc_goods where goods_id < 10
#isql_query第一列id需为整数
#title、content作为字符串/文本字段,被全文索引
sql_attr_uint = gid #从SQL读取到的值必须为整数
sql_attr_timestamp = add_time #从SQL读取到的值必须为整数,作为时间属性 sql_query_info_pre = SET NAMES utf8 #命令行查询时,设置正确的字符集
sql_query_info = SELECT * FROM documents WHERE id=$id #命令行查询时,从数据库读取原始数据信息
} #index定义
index mysql
{
source = mysql #对应的source名称
path = /Data/apps/coreseek/var/data/mysql #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
docinfo = extern
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0 #中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/
#charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾
charset_dictpath = /Data/apps/mmseg3/etc/
#charset_dictpath = etc/ #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...
charset_type = zh_cn.utf-8
} # 增量索引
source mysql1:mysql
{
sql_query_pre = SET NAMES utf8
sql_query = SELECT goods_id, goods_id as gid, goods_name, add_time FROM fc_goods where goods_id >= 10
}
#mysql1定义
index mysql1:mysql
{
source = mysql1
path = /Data/apps/coreseek/var/data/mysql1
charset_dictpath = /Data/apps/mmseg3/etc/
charset_type = zh_cn.utf-8
} #全局index定义
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 = /Data/apps/coreseek/var/log/searchd_mysql.pid #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
log = /Data/apps/coreseek/var/log/searchd_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
query_log = /Data/apps/coreseek/var/log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
}

  上述配置文件定义了一个mysql主索引和一个mysql1增量索引,为了方便演示,这里讲主索引数据范围限制为id<10的数据;而在mysql1增量索引中限制id>=10的数据,这样就实现了主从索引(即增量索引)。在合并主从索引前,首先需要生成增量索引,命令如下:

[root@localhost ~]# /Data/apps/coreseek/bin/indexer -c /Data/apps/coreseek/etc/csft_mysql.conf mysql1 --rotate // 生成增量索引

  增量索引生成之后

[root@localhost ~]# /Data/apps/coreseek/bin/indexer -c /Data/apps/coreseek/etc/csft_mysql.conf --merge mysql mysql1 --rotate  // 合并主从索引

  这样就完成了增量索引的配置。

,只需要使用merge选项讲增量索引表合并到主索引表即可。

coreseek增量索引的更多相关文章

  1. coreseek增量索引合并

    重建主索引和增量索引: [plain] view plain copy /usr/local/coreseek/bin/indexer--config /usr/local/coreseek/etc/ ...

  2. sphinx (coreseek)——3、区段查询 与 增量索引实例

    首先本文测试数据100多万的域名的wwwtitle 信息  检索数据: 首先建立临时表格: CREATE TABLE `sph_counter` ( `index_id` ) NOT NULL, `m ...

  3. sphinx(coreseek)——1、增量索引

    首先介绍一下     CoreSeek/Sphinx的发布包 indexer: 用于创建全文索引;    search: 一个简单的命令行(CLI) 的测试程序,用于测试全文索引;    search ...

  4. Coreseek:部门查询和增量索引代替实时索引

    1.行业调查 索引系统需要通过主查询来获取所有的文档信息,一个简单的实现是整个表的数据到内存,但是这可能会导致整个表被锁定,并且使其它操作被阻止(例如:在MyISAM格款式上INSERT操作).同时, ...

  5. Coreseek:区段查询及增量索引取代实时索引

    1.区段查询 索引系统须要通过主查询来获取所有的文档信息,一种简单的实现是将整个表的数据读入内存,可是这可能导致整个表被锁定并使得其它操作被阻止(比如:在MyISAM格式上的INSERT操作),同一时 ...

  6. sphinx增量索引

    首先建立一个计数表,保存数据表的最新记录ID CREATE TABLE `sph_counter` (  `id` int(11) unsigned NOT NULL,  `max_id` int(1 ...

  7. sphinx续5-主索引增量索引和实时索引

    原文件地址:http://blog.itpub.net/29806344/viewspace-1400942/ 在数据库数据非常庞大的时候,而且实时有新的数据插入,如果我们不更新索引,新的数据就sea ...

  8. xunsearch增量索引改进版

    最近测试了xunserach全文索引程序.xunsearch只有LINUX版,所以想用windows服务器请使用其它全文索引程序.xunsearch本身不像coreseek那样自带增量索引的功能,所以 ...

  9. Sphinx主索引和增量索引来实现索引实时更新的关键步骤

    1.配置csft.conf文件 vim /etc/csft.conf # # Minimal Sphinx configuration sample (clean, simple, functiona ...

随机推荐

  1. mac 下JDK 与 tomcat 的安装与配置

    一.Mac下JDK的安装 1.先检测Mac是否已经安装过JDK,在终端中输入java 或者 javac 显示说明,表明已经安装过JDK,JDK版本查询终端键入java -version,终端会返回JD ...

  2. JavaScript错误/异常处理

    JavaScript Try...Catch 语句 介绍:JavaScript中的try...carch语句的作用和C#中的try...catch语句的作用一样, 都是捕获并处理异常. 语法: try ...

  3. Linux 下dns的搭建

    1.软件安装: redhat默认使用bind作为安装软件 使用yum安装 yum install -y bind bind-chroot bind-utils bind提供主程序 bind-chroo ...

  4. 《InsideUE4》UObject(二)类型系统概述

    曾子曰:吾日三省吾身--为人谋而不忠乎?与朋友交而不信乎?传不习乎? 引言 上一篇我们谈到了在游戏引擎,或者在程序和高级编程语言中,设计一个统一对象模型得到的好处,和要付出的代价,以及在UE里是怎么对 ...

  5. Usual tiny skills & solutions

    Ubuntu and Win10 - double OS 2016-02-21 Yesterday I helped my friend install Ubuntu (14.04 LTS) on h ...

  6. js特效,加速度,图标跳动

    看到一个在地图上的特效,就是标注当前位置之后,图标一直在跳动,那效果看着比较得劲,就自己写了个图标跳动的jsjs代码: setTimeout("jump()",5); var t= ...

  7. Hibernate 查询方式(HQL/QBC/QBE)汇总

    作为老牌的 ORM 框架,Hibernate 在推动数据库持久化层所做出的贡献有目共睹. 它所提供的数据查询方式也越来越丰富,从 SQL 到自创的 HQL,再到面向对象的标准化查询. 虽然查询方式有点 ...

  8. 走格子 51nod

    球最少需要的能量,就是保证能量一直>=0,从头遍历取过程中能量最小值,绝对值为答案. #include<iostream> #include<algorithm> #in ...

  9. Jenkins + svn + maven 构建持续集成环境搭建

    Jenkins简介 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: ...

  10. Ajax跨域实现

    Ajax Ajax,Asynchronus JavaScript and XML,字母意思:异步的 JavaScript 和 XML,是指一种创建交互式网页应用的网页开发技术.用于异步地去获取XML作 ...