【实战】sphinx索引合并的脚本

mkdir /usr/local/sphinx/scripts

----0.全部主索引新建

#!/bin/bash
#[email protected]
#main_index_update.sh
/usr/local/sphinx/bin/indexer src2  -c /usr/local/sphinx/etc/sphinx.conf  --rotate > /dev/null 2>&1
/usr/local/sphinx/bin/indexer src3  -c /usr/local/sphinx/etc/sphinx.conf  --rotate > /dev/null 2>&1
/usr/local/sphinx/bin/indexer src4  -c /usr/local/sphinx/etc/sphinx.conf  --rotate > /dev/null 2>&1
/usr/local/sphinx/bin/indexer src5  -c /usr/local/sphinx/etc/sphinx.conf  --rotate > /dev/null 2>&1

----1.增量索引
#!/bin/bash
#[email protected]
#delta_index_update.sh
/usr/local/sphinx/bin/indexer src2_delta  -c /usr/local/sphinx/etc/sphinx.conf  --rotate > /dev/null 2>&1
/usr/local/sphinx/bin/indexer src3_delta  -c /usr/local/sphinx/etc/sphinx.conf  --rotate > /dev/null 2>&1
/usr/local/sphinx/bin/indexer src4_delta  -c /usr/local/sphinx/etc/sphinx.conf  --rotate > /dev/null 2>&1
/usr/local/sphinx/bin/indexer src5_delta  -c /usr/local/sphinx/etc/sphinx.conf  --rotate > /dev/null 2>&1

---2.合并索引

#!/bin/bash
#[email protected]
#merge_daily_index.sh
# merge "main + delta" indexes

##1. index abount tblpnr
/usr/local/sphinx/bin/indexer --merge src2 src2_delta -c /usr/local/sphinx/etc/sphinx.conf --rotate >> /usr/local/sphinx/var/log/index_merge.log 2>&1

if [ "$?" -eq 0 ]; then
			/usr/local/mysql/bin/mysql -h127.0.0.1 -uroot -ppassword  -e "REPLACE INTO jinri.sph_counter SELECT 2, MAX(id),max(update_time) FROM jinripnr.tblpnr"
fi

##2. index abount tblticketno
/usr/local/sphinx/bin/indexer --merge src3 src3_delta -c /usr/local/sphinx/etc/sphinx.conf --rotate >> /usr/local/sphinx/var/log/index_merge.log 2>&1

if [ "$?" -eq 0 ]; then
        /usr/local/mysql/bin/mysql -h127.0.0.1 -uroot -ppassword -e "REPLACE INTO jinri.sph_counter SELECT 3, MAX(id),max(update_time) FROM jinritickno.tblticketno"
fi

##3. index abount tblpassengername
/usr/local/sphinx/bin/indexer --merge src4 src4_delta -c /usr/local/sphinx/etc/sphinx.conf --rotate >> /usr/local/sphinx/var/log/index_merge.log 2>&1

if [ "$?" -eq 0 ]; then
        /usr/local/mysql/bin/mysql -h127.0.0.1 -uroot -ppassword -e "REPLACE INTO jinri.sph_counter SELECT 4, MAX(id),max(update_time) FROM jinripname.tblpassengername"
fi

##4. index abount tblorderno
/usr/local/sphinx/bin/indexer --merge src5 src5_delta -c /usr/local/sphinx/etc/sphinx.conf --rotate  >> /usr/local/sphinx/var/log/index_merge.log 2>&1

if [ "$?" -eq 0 ]; then
        /usr/local/mysql/bin/mysql -h127.0.0.1 -uroot -ppassword -e "REPLACE INTO jinri.sph_counter SELECT 5, MAX(id),max(update_time) FROM jinriorderno.tblorderno"
fi

####再次新建增量索引
#delta_index_update.sh
/usr/local/sphinx/bin/indexer src2_delta  -c /usr/local/sphinx/etc/sphinx.conf  --rotate > /dev/null 2>&1
/usr/local/sphinx/bin/indexer src3_delta  -c /usr/local/sphinx/etc/sphinx.conf  --rotate > /dev/null 2>&1
/usr/local/sphinx/bin/indexer src4_delta  -c /usr/local/sphinx/etc/sphinx.conf  --rotate > /dev/null 2>&1
/usr/local/sphinx/bin/indexer src5_delta  -c /usr/local/sphinx/etc/sphinx.conf  --rotate > /dev/null 2>&1

# crontab -l

# crontab -e

*/5 * * * *  /usr/local/mysql/scripts/delta_index_update.sh
0 2 * * *    /usr/local/mysql/scripts/merge_daily_index.sh

---合并语法
/usr/local/sphinx/bin/indexer --merge src3 src3_delta -c /usr/local/sphinx/etc/sphinx.conf --rotate --merge-dst-range deleted 0 0  --merge-killlists

--查看job执行日志
tail -f /var/log/cron

时间: 2024-10-28 15:16:29

【实战】sphinx索引合并的脚本的相关文章

sphinx配置增量索引和索引合并

配置增量索引 1,配置csft.conf文件. 其中base为父类,scr1和tmp_src1都是他的子类,相应配置如下. 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/

MySQL 优化之 index merge(索引合并)

MySQL5.0之前,一条语句中一个表只能使用一个索引,无法同时使用多个索引.但是从5.1开始,引入了 index merge 优化技术,对同一个表可以使用多个索引.理解了 index merge 技术,我们才知道应该如何在表上建立索引. 相关文档:http://dev.mysql.com/doc/refman/5.6/en/index-merge-optimization.html (注意该文档中说的有几处错误) The Index Merge method is used to retrie

索引合并和组合索引的比较 (转)

在教务系统补考子系统的开发过程中,安排考场的算法运算时间非常慢,需要32秒才能完成考场的分配.查找原因,由于需要在学生补考科目表里面进行查找数据——该表的数据目前已达200万条,所以算法的大部分时间都花在查找数据方面.为了解决以上问题,我们决定对数据表进行分析,创建合适的索引. 在创建索引过程中,我们发现查询语句已经为查询列创建了索引,但是是为每个列单独创建的——SELECT  *  FROM TABLE_NAME  WHERE COL1=’ABC’  AND  COL2=123; 为了重点说明

lucene 索引合并策略

在索引算法确定的情况下,最为影响Lucene索引速度有三个参数--IndexWriter中的 MergeFactor, MaxMergeDocs, RAMBufferSizeMB .这些参数无非是控制内外存交换和索引合并频率,从而达到提高索引速度.当然这些参数的设置也得依照硬件条件灵活设置. MaxMergeDocs该参数决定写入内存索引文档个数,到达该数目后就把该内存索引写入硬盘,生成一个新的索引segment文件. 所以该参数也就是一个内存buffer,一般来说越大索引速度越快. MaxBu

简单的索引合并压缩算法研究

索引合并压缩算法的思路是: 索引合并压缩算法有一种有损压缩,主要用于对包含一定噪音的整型数组进行合并压缩.算法原理就像下雨一样,每一滴都会溅射出一小片湿润区域,如果下一滴落在前面的湿润区域那么 就加强该区域,并且重新计算湿润中心:如果两片区域重叠 那么就将两片合并,并且重新计算湿润中心. 算法描述: 前段时间研究红外遥控器学习模型,由于学习过程中采集到的红外码是一个整型数组且在数值上很不规范,有可能是噪声的原因,获得的整型数组会有很微小的波动偏差,使得垃圾数据含量很大.导致红外码存储,传输,分析

人人都是 DBA(XIII)索引信息收集脚本汇编

什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA". 索引 找出哪些表的 Index 需要改进 在指定数据库中查找哪些表的 Index 需要改进 根据缓存的查询计划判断 SP 是否需要优化 发现那些 Index 的写远多于读的表 查看 Index 的 Statistics 最后更新时间 查看哪些 Index 被修改的最频繁 查看 Index 碎片化

Spark 个人实战系列(2)--Spark 服务脚本分析

前言: spark最近非常的火热, 本文不讲spark原理, 而是研究spark集群搭建和服务的脚本是如何编写的, 管中窥豹, 希望从运行脚本的角度去理解spark集群. 研究的spark为1.0.1版. spark集群采用standalone模式搭建, 其基础架构为master-slave(worker模式, 单master+多slave(worker)节点构成. 脚本目录start-all.sh 作用: 启动整个集群stop-all.sh 作用: 关闭整个集群start-master.sh

【实战】sphinx启动关闭管理脚本

#!/bin/sh #/usr/local/sphinx/bin/ # #[email protected] sphinx_pidfile=/usr/local/sphinx/var/log/searchd.pid if [ -e "${sphinx_pidfile}" ] ; then sphinx_active=1 #runing #echo ${sphinx_active} else sphinx_active=0 #close #echo ${sphinx_active} fi

使用sphinx索引mysql数据

数据库表如下 mysql> select * from tb_account; +----+-------+------+ | id | name | age | +----+-------+------+ | 1 | ciaos | 3 | | 2 | stone | 6 | +----+-------+------+ 安装sphinx yum install sphinx libsphinxclient-devel 配置sphinx代替mysql全文索引(/etc/sphinx/sphinx