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 相关文章推荐
Windows下PHP的任意文件执行漏洞
Oct 09 PHP
网络资源
Oct 09 PHP
通用PHP动态生成静态HTML网页的代码
Mar 04 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
php生成二维码时出现中文乱码的解决方法
Dec 18 PHP
php使用cookie实现记住登录状态
Apr 27 PHP
PHP滚动日志的代码实现
Jun 10 PHP
mac系统下为 php 添加 pcntl 扩展
Aug 28 PHP
PHP数据库处理封装类实例
Dec 24 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
Oct 14 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
May 27 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实现的获取URL信息的类
2007/01/02 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
smarty中post用法实例
2014/11/28 PHP
一个可拖拽列宽表格实例演示
2012/11/26 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
自己封装的javascript事件队列函数版
2014/06/12 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
Window.Open打开窗体和if嵌套代码
2016/04/15 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
2016/09/24 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
详解vue axios中文文档
2017/09/12 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
python实现比较两段文本不同之处的方法
2015/05/30 Python
python matplotlib拟合直线的实现
2019/11/19 Python
Python面向对象之继承原理与用法案例分析
2019/12/31 Python
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
工程专业求职自荐书范文
2014/02/18 职场文书
法院授权委托书范文
2014/08/02 职场文书
财务科长个人对照检查材料
2014/09/18 职场文书
2014年审计人员工作总结
2014/12/19 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python
MySQL8.0的WITH查询详情
2021/08/30 MySQL
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python