1.配置csft.conf文件

vim /etc/csft.conf

#
# Minimal Sphinx configuration sample (clean, simple, functional)
# source test_t0
{
type = mysql sql_host = localhost
sql_user = root
sql_pass = 123123
sql_db = test
sql_port = 3306 # optional, default is 3306
sql_query_pre = SET NAMES utf8
sql_query_pre = REPLACE INTO count_t0 select 1,max(id) from t0
sql_query = \
SELECT id, description, name, age \
FROM t0 WHERE id <= (SELECT max_id FROM count_t0 where c_id=1 ) sql_attr_uint = age
#sql_attr_timestamp = date_added #sql_query_info = SELECT * FROM documents WHERE id=$id
} source test_t0_delta:test_t0
{
sql_query_pre = SET NAMES utf8
sql_query_pre =
sql_query = \
SELECT id, description, name, age \
FROM t0 WHERE id > (SELECT max_id FROM count_t0 where c_id=1 )
} index test_t0
{
source = test_t0
path = /usr/local/coreseek/var/data/test_t0
docinfo = extern
charset_dictpath = /usr/local/mmseg/etc/
charset_type = zh_cn.utf-8
} index test_t0_delta:test_t0
{
source = test_t0_delta
path = /usr/local/coreseek/var/data/test_t0_delta
docinfo = extern
charset_dictpath = /usr/local/mmseg/etc/
charset_type = zh_cn.utf-8
} indexer
{
mem_limit = 512M
} searchd
{
port = 9312
log = /usr/local/coreseek/var/log/searchd.log
query_log = /usr/local/coreseek/var/log/query.log
read_timeout = 5
max_children = 30
pid_file = /usr/local/coreseek/var/log/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 0
unlink_old = 1
}

2.重新生成主索引的shell脚本文件

cd /usr/local/shell

vim test_t0.sh

#!/bin/sh
/usr/local/coreseek/bin/searchd -c /etc/csft.conf --stop #停止searchd
/usr/local/coreseek/bin/indexer -c /etc/csft.conf test_t0 #生成索引
/usr/local/coreseek/bin/searchd -c /etc/csft.conf #启动searchd

chmod 755 test_t0.sh

3.重新生成增量索引的shell脚本文件

cd /usr/local/shell

vim test_t0_delta.sh

#!/bin/sh
/usr/local/coreseek/bin/searchd -c /etc/csft.conf --stop
/usr/local/coreseek/bin/indexer -c /etc/csft.conf test_t0_delta /usr/local/coreseek/bin/searchd -c /etc/csft.conf #启动searchd

chmod 755 test_t0_delta.sh

4.添加到定时任务

crontab -e

  * * * /usr/local/shell/test_t0.sh #每天凌晨3点半更新主索引
*/ * * * * /usr/local/shell/test_t0_delta.sh #每隔10分钟更新增量索引

Sphinx主索引和增量索引来实现索引实时更新的关键步骤的更多相关文章

  1. sphinx增量索引和主索引来实现索引的实时更新

    项目中文章的信息内容因为持续有新增,而文章总量的基数又比较大,所以做搜索的时候,用了主索引+增量索引这种方式来实现索引的实时更新. 实现原理: 1. 新建一张表,记录一下上一次已经创建好索引的最后一条 ...

  2. sphinx通过增量索引实现近实时更新

    一.sphinx增量索引实现近实时更新设置 数据库中的已有数据很大,又不断有新数据加入到数据库中,也希望能够检索到.全部重新建立索引很消耗资源,因为我们需要更新的数据相比较而言很少. 例如.原来的数据 ...

  3. sphinx 增量索引 实现近实时更新

    一.sphinx增量索引的设置   数据库中的已有数据很大,又不断有新数据加入到数据库中,也希望能够检索到.全部重新建立索引很消耗资源,因为我们需要更新的数据相比较而言很少.例如.原来的数据有几百万条 ...

  4. cassandra——可以预料的查询,如果你的查询条件有一个是根据索引查询,那其它非索引非主键字段,可以通过加一个ALLOW FILTERING来过滤实现

    cassandra的索引查询和排序 转自:http://zhaoyanblog.com/archives/499.html   cassandra的索引查询和排序 cassandra的查询虽然很弱,但 ...

  5. 视图view没有主键,但可以添加唯一索引

    视图没有主键,但可以加上唯一索引 大致可以这样理解:视图是张虚拟的表.视图所对应的数据不进行实际的存储,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表. ...

  6. Oracle监控用户索引使用情况,删除无用索引

    监控当前业务用户索引 一段时间后查询从未被使用的索引,删除无用索引 停止监控索引 1. 监控当前用户所有索引 得到监控所有索引的语句: select 'alter index ' || index_n ...

  7. SQL 创建索引的作用以及如何创建索引

    SQL 创建索引的作用以及如何创建索引 SQL 创建索引的作用 一.使用索引的优点: 1.通过唯一性索引(unique)可确保数据的唯一性 2.加快数据的检索速度 3.加快表之间的连接 4.减少分组和 ...

  8. 索引优化原则及Oracle中索引总结

    索引建立原则 确定针对该表的操作是大量的查询操作还是大量的增删改操作. 尝试建立索引来帮助特定的查询.检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引. where语句中不得不对查 ...

  9. Elasticsearch 关键字:索引,类型,字段,索引状态,mapping,文档

    1. 索引(_index)索引:说的就是数据库的名字.我这个说法是对应到咱经常使用的数据库. 结合es的插件 head 来看. 可以看到,我这个地方,就有这么几个索引,索引就是数据库,后面是这个数据库 ...

随机推荐

  1. javascript 原型及原型链详解

    我们创建的每个函数都有一个 prototype (原型)属性,这个属性是一个指针,指向一个原型对象,而这个原型对象中拥有的属性和方法可以被所以实例共享. function Person(){ } Pe ...

  2. Eslint报错整理与解决方法(持续整理)

    1.'Unexpected tab character' 字面意思理解呢就是意想不到的制表符,当时出现的时候就是我习惯的使用Tab键去打空格,但是eslint默认不认可Tab,所以解决方法很简单: 在 ...

  3. asp.net core 发布centos 7 遇到的坑

    只是简单记录 .net core 在linux 的安装部署步骤,大神可以忽略 虚拟机:VMware Workstation Pro Linux 版本:http://mirrors.aliyun.com ...

  4. ie8兼容圆角

    ie8兼容圆角 PIE.HTC下载地址:http://css3pie.com/ 兼容ie8 代码如下: <!DOCTYPE html> <html> <head> ...

  5. NGUI_Depth

    四.深度(Depth)概念; 1. (1).每一个UIPanel和每一个UI控件都一定会有一个Depth,深度值大代表显示的优先级高(会趋向于在界面更上层显示) (2).Depth决定的是UI的显示层 ...

  6. 笔记:Hibernate 持久化类标注说明

    持久化类标注 标注 @Entity:注解声明该类是一个Hibernate的持久化类 标注 @Table:指定该类映射的表 参数 name:指定映射数据库表的名称 参数 uniqueConstraint ...

  7. Java代理模式之动态代理

    动态代理类的源码是程序在运行期间由JVM根据反射等机制动态生成的,所以不存在代理类的字节码文件.代理角色和真实角色的联系在程序运行时确定! Java中有两种动态代理,一种是JDK自带的,另一种的CGL ...

  8. zabbix监控redis性能

    创建采集脚本 mkdir -p /etc/zabbix/scripts chown -R zabbix.root /etc/zabbix/scripts vim redis_status.sh  #! ...

  9. zabbix自定义key监控mysql主从同步超简单!

    原理:利用在slave上运行show slave status获取Slave_IO_Running和Slave_SQL_Running的值 1.在zabbix客户端配置文件中加入: 首先要对mysql ...

  10. 设计模式 --> (8)组合模式

    组合模式 组合模式,是为了解决整体和部分的一致对待的问题而产生的,要求这个整体与部分有一致的操作或行为.部分和整体都继承与一个公共的抽象类,这样,外部使用它们时是一致的,不用管是整体还是部分,使用一个 ...