zoukankan      html  css  js  c++  java
  • 全文检索主索引+增量索引方案

    sphinx配置文件mkmfcm.conf如下:

    #名可名非常名 主索引源
    source mkmfcm_main
    {
        type		= mysql
        sql_host		= localhost
        sql_user		= root
        sql_pass		= root
        sql_db		= mkmfcm
        sql_port		= 3306
        sql_query_pre	= SET NAMES utf8
        sql_query_pre	= REPLACE INTO sph_counter SELECT 1, MAX(forum_id) FROM forum
        sql_query		= SELECT forum_id as id, forum_title, forum_content FROM forum
    }
    #名可名非常名 增量索引源
    source mkmfcm_delta : mkmfcm_main
    {
        sql_query_pre	= SET NAMES utf8
        sql_query		= SELECT forum_id as id, forum_title, forum_content FROM forum \
    				WHERE forum_id>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )
    }
     
    #名可名非常名 主索引
    index question_main
    {
        source		= mkmfcm_main	#对应的source名称
        path		= /usr/local/coreseek/var/data/question_main
        docinfo		= extern
        mlock		= 0
        morphology		= none
        min_word_len        = 2
        html_strip		= 0
     
        charset_dictpath	= /usr/local/mmseg/etc/ #BSD、Linux环境下设置,/符号结尾
        charset_type	= zh_cn.utf-8
    }
    #名可名非常名 增量索引
    index question_delta : question_main
    {
        source		= mkmfcm_delta
        path		= /usr/local/coreseek/var/data/question_delta
    }
     
    #全局索引配置
    indexer
    {
        mem_limit            = 128M
    }
     
    #searchd服务定义
    searchd
    {
        listen		= 9312
        #listen		= 9306:mysql41
        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_mysql.pid
        log			= /usr/local/coreseek/var/log/searchd_mysql.log
        query_log		= /usr/local/coreseek/var/log/query_mysql.log
        binlog_path		=	#关闭binlog日志
    }
    View Code

    索引更新方案有两种:

    第一次创建全部索引: ./indexer -c /var/www/coreseek/mkmfcm.conf --all
    运行检索监听程序:./searchd -c /var/www/coreseek/mkmfcm.conf
    方案一:
        每天凌晨3点合并索引:./indexer -c /var/www/coreseek/oseye.conf --merge question_main question_delta --rotate
        每3分钟更新增量索引:./indexer -c /var/www/coreseek/oseye.conf question_delta --rotate
        优缺点,合并非常快,但没办法更新索引最大值得,造成重复。
    方案二:
        每天凌晨3点重建主索引:./indexer -c /var/www/coreseek/oseye.conf question_main --rotate
        每3分钟更新增量索引:./indexer -c /var/www/coreseek/oseye.conf question_delta --rotate
        优缺点,速度慢,且有重复数据。

    目前先采用方案二,继续探寻其他方式,编辑/etc/crontab增加shell如下:

    * */3	* * *	root	cd /usr/local/coreseek/bin && ./indexer -c /var/www/coreseek/mkmfcm.conf question_main --rotate
    */3 *	* * *	root	cd /usr/local/coreseek/bin && ./indexer -c /var/www/coreseek/mkmfcm.conf question_delta --rotate

    重启cron:

    /etc/init.d/cron restart
    出处:http://www.zhaiqianfeng.com    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    内存管理——显式类型转换
    内存管理——隐式类型转换
    数据类型——构造类型——枚举
    构造类型——联合类型
    结构体学习笔记9——结构体大小计算规则
    结构体学习笔记8——内存对齐
    结构体学习笔记7——结构体数组
    结构体学习笔记6——结构体嵌套
    结构体学习笔记5——指针成员与函数成员
    一.js高级(9)深拷贝-浅拷贝的其他方法
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4616524.html
Copyright © 2011-2022 走看看