但最近发现增量的总是搜索不到,今天看了下运行日志,有如下提示: [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参数的, <div class="codetitle"><a style="CURSOR: pointer" data="44181" class="copybut" id="copybut44181" onclick="doCopy('code44181')"> 代码如下:<div class="codebody" id="code44181"> 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中,这样重启过机器就不会再出现这种问题了。 <div class="codetitle"><a style="CURSOR: pointer" data="35895" class="copybut" id="copybut35895" onclick="doCopy('code35895')"> 代码如下:<div class="codebody" id="code35895"> 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")
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|