sphinx增量索引的一个问题


Posted in PHP onJune 14, 2011

但最近发现增量的总是搜索不到,今天看了下运行日志,有如下提示:

[Sun Apr 17 19:30:01.876 2011] [ 3400] WARNING: rotating index 'news_delta': cur to old rename failed: rename /dev/shm/sphinx/data/news_delta.spa to /dev/shm/sphinx/data/news_delta.old.spa failed: No such file or directory

[Sun Apr 17 19:30:01.881 2011] [ 3400] WARNING: rotating index 'article_delta': cur to old rename failed: rename /dev/shm/sphinx/data/article_delta.spa to /dev/shm/sphinx/data/article_delta.old.spa failed: No such file or directory

为提高增量索引速度,我将增量索引存放在/dev/shm中,看了下/dev/shm/sphinx/data/目录下的内容:
-rw-r--r-- 1 root root 385762 Apr 17 19:21 article_delta.new.spd
-rw-r--r-- 1 root root 3713 Apr 17 19:21 article_delta.new.sph
-rw-r--r-- 1 root root 46260 Apr 17 19:21 article_delta.new.spi
-rw-r--r-- 1 root root 0 Apr 17 19:21 article_delta.new.spk
-rw-r--r-- 1 root root 0 Apr 17 19:21 article_delta.new.spm
-rw-r--r-- 1 root root 261402 Apr 17 19:21 article_delta.new.spp

奇怪,应该要有article_delta.spd等文件,不应该是.new的文件。
增量索引时是使用--rotate参数的,

bin/indexer --rotate news_delta 
bin/indexer --rotate article_delta

在rotate时,需要将原article_delta.spa重命名为article_delta.old.spa,然后将article_delta.new.spa重命名为article_delta.spa,再通知searchd重启完成rotate。

想起应该是前几天凌晨重启过机器,原文件都丢了,导致无法rotate:(

解决方法:
运行:bin/indexer article_delta
创建了article_delta.spd,sph等文件。

再运行:bin/indexer article_delta --rotate
运行日志提示:rotating index 'article_delta': success
正常了!

把要做增量索引的命令写了个脚本,放在rc.local中,这样重启过机器就不会再出现这种问题了。

echo "start:" $(date +"%y-%m-%d %H:%M:%S") 
cd /usr/local/coreseek/bin 
./indexer news_delta 
./indexer article_delta 
echo "end:" $(date +"%y-%m-%d %H:%M:%S")
PHP 相关文章推荐
php调用MySQL存储过程的方法集合(推荐)
Jul 03 PHP
对淘宝URL中ID提取的PHP代码
Sep 01 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 PHP
PHP常用数组函数介绍
Jul 28 PHP
PHP队列用法实例
Nov 05 PHP
Yii学习总结之安装配置
Feb 22 PHP
php实现scws中文分词搜索的方法
Dec 25 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
May 17 PHP
PHP线程的内存回收问题
Jul 08 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 PHP
批量获取memcache值并按key的顺序返回的实现代码
Jun 14 #PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 #PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 #PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 #PHP
php学习笔记 类的声明与对象实例化
Jun 13 #PHP
php学习笔记 PHP面向对象的程序设计
Jun 13 #PHP
php学习笔记 数组的常用函数
Jun 13 #PHP
You might like
php面向对象全攻略 (九)访问类型
2009/09/30 PHP
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
PHP多进程编程实例
2014/10/15 PHP
9个比较实用的php代码片段
2016/03/15 PHP
php实现生成验证码实例分享
2016/04/10 PHP
ajax 文件上传应用简单实现
2009/03/03 Javascript
小议javascript 设计模式 推荐
2009/10/28 Javascript
jQuery 选择器、DOM操作、事件、动画
2010/11/25 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
JavaScript基本的输出和嵌入式写法教程
2015/10/20 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
Python 模拟购物车的实例讲解
2017/09/11 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
python版飞机大战代码分享
2018/11/20 Python
浅谈Python基础—判断和循环
2019/03/22 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
军人违纪检讨书
2014/02/04 职场文书
岗位职责怎么写
2014/03/14 职场文书
公司2015年终工作总结
2015/05/26 职场文书
团队拓展训练感想
2015/08/07 职场文书
青少年法制教育心得体会
2016/01/14 职场文书