mysql增量索引_coreseek增量索引

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选项讲增量索引表合并到主索引表即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值