sphinx增量索引的一個問題
更新時間:2011年06月14日 22:15:37 作者:
很早使用coreseek來實現(xiàn)對內(nèi)容的搜索,并使用主索引+增量索引來實現(xiàn)新發(fā)的內(nèi)容很快能搜索到,使用一直挺穩(wěn)定。
但最近發(fā)現(xiàn)增量的總是搜索不到,今天看了下運行日志,有如下提示:
[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/目錄下的內(nèi)容:
-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參數(shù)的,
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
創(chuàng)建了article_delta.spd,sph等文件。
再運行:bin/indexer article_delta --rotate
運行日志提示:rotating index 'article_delta': success
正常了!
把要做增量索引的命令寫了個腳本,放在rc.local中,這樣重啟過機器就不會再出現(xiàn)這種問題了。
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")
[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/目錄下的內(nèi)容:
-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參數(shù)的,
復制代碼 代碼如下:
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
創(chuàng)建了article_delta.spd,sph等文件。
再運行:bin/indexer article_delta --rotate
運行日志提示:rotating index 'article_delta': success
正常了!
把要做增量索引的命令寫了個腳本,放在rc.local中,這樣重啟過機器就不會再出現(xiàn)這種問題了。
復制代碼 代碼如下:
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")
相關(guān)文章
對squid中refresh_pattern的一些理解和建議
用于確定一個頁面進入cache后,它在cache中停留的時間。refresh_pattern規(guī)則僅僅應用到?jīng)]有明確過時期限的響應。原始服務器能使用Expires頭部,或者Cache-Control:max-age指令來指定過時期限。2009-04-04PHP在不同頁面間傳遞Json數(shù)據(jù)示例代碼
本文為大家介紹下PHP如何在不同頁面間傳遞Json數(shù)據(jù),具體實現(xiàn)如下,感興趣的朋友可以參考下哈,希望對大家有所幫助2013-06-06JS中encodeURIComponent函數(shù)用php解碼的代碼
在JS中使用了encodeURIComponent對中文進行編碼在PHP中使用iconv('UTF-8','gb2312',$q);就可以得到你需要的字串了,其中g(shù)b2312根據(jù)你實際應用來定如還不明白為什么看下面的文章2012-03-03