zoukankan      html  css  js  c++  java
  • 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选项讲增量索引表合并到主索引表即可。

  • 相关阅读:
    vim 编辑器使用
    PHP高并发高负载系统架构(转载)
    类的使用
    linux下EC20 4G模块驱动移植
    linux 4G模块拨号脚本
    linux4.1.4上移植ME909s-821,MU609 4G模块驱动
    shell脚本语之运算符
    vim的列编辑操作
    linux下普通用户添加 sudo 免密码
    4G模块在AM335x上的移植
  • 原文地址:https://www.cnblogs.com/timothy-lai/p/6145928.html
Copyright © 2011-2022 走看看