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中运用jQuery的Ajax跨域调用实现代码
Feb 21 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
Aug 06 PHP
php实现批量下载百度云盘文件例子分享
Apr 10 PHP
使用ob系列函数实现PHP网站页面静态化
Aug 13 PHP
PHP向浏览器输出内容的4个函数总结
Nov 17 PHP
PHP中使用正则表达式提取中文实现笔记
Jan 20 PHP
基于PHP实现的事件机制实例分析
Jun 18 PHP
详解PHP错误日志的获取方法
Jul 20 PHP
PHP封装cURL工具类与应用示例
Jul 01 PHP
laravel-admin的多级联动方法
Sep 30 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Jan 22 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
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
浅析php与数据库代码开发规范
2013/08/08 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
php缓冲输出实例分析
2015/01/05 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
JavaScript 继承详解(二)
2009/07/13 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
客户端验证用户名和密码的方法详解
2016/06/16 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
javascript判断元素存在和判断元素存在于实时的dom中的方法
2017/01/17 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
angular6的table组件开发的实现示例
2018/12/26 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
使用Python实现将list中的每一项的首字母大写
2019/06/11 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
浅析PyCharm 的初始设置(知道)
2020/10/12 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
2013/06/06 HTML / CSS
HTML5 新旧语法标记对我们有什么好处
2012/12/13 HTML / CSS
企业军训感言
2014/02/08 职场文书
写得不错的求职信范文
2014/07/11 职场文书
学生个人总结范文
2015/02/15 职场文书
2016公司年会通知范文
2015/04/25 职场文书
给下属加薪申请报告
2015/05/15 职场文书
标枪加油稿
2015/07/22 职场文书
MySQL创建管理KEY分区
2022/04/13 MySQL