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 相关文章推荐
模拟OICQ的实现思路和核心程序(二)
Oct 09 PHP
php 缓存函数代码
Aug 27 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
php smarty模板引擎的6个小技巧
Apr 24 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
Jun 22 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
Jul 05 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
Jul 19 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
php解析xml 的四种简单方法(附实例)
Jul 11 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
PHP二维数组去重算法
Dec 17 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 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开源建站平台小结
2010/04/22 PHP
php命令行使用方法和命令行参数说明
2014/04/08 PHP
php实现比较全的数据库操作类
2015/06/18 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
javascript textContent与innerText的异同分析
2010/10/22 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
Javascript OOP之面向对象
2016/07/31 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
JavaScript实现随机点名小程序
2020/10/29 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
Python安装第三方库的3种方法
2015/06/21 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
django实现类似触发器的功能
2019/11/15 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
Python如何脚本过滤文件中的注释
2020/05/27 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
什么是Smart Navigation?
2016/07/03 面试题
《纸船和风筝》教学反思
2014/02/15 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
酒鬼酒广告词
2014/03/21 职场文书
个人借款协议书范本
2014/11/17 职场文书
求职信格式范文
2015/03/19 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
外出培训学习心得体会
2016/01/18 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python