sphinx增量索引的乙個問題

2022-09-28 10:30:10 字數 1925 閱讀 9740

但最近發現增量的總是搜尋不到,今天看了下執行日誌,有如下提示:

[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/s程式設計客棧phinx/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_dewww.cppcns.comlta.new.spp

奇怪,應該要有article_delta.spd等檔案,不應該是.new的檔案。

增量索引時是使用--rot程式設計客棧ate引數的,

複製** **如下:

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重啟完成rotwww.cppcns.comate。

想起應該是前幾天凌晨重啟過機器,原檔案都丟了,導致無法rotate:(

解決方法:

執行:bin/indexer article_delta

建立了article_delta.spd,sph等檔案。

再執行:bin/indexer article_delta --rotate

執行日誌提示:rotating index 'article_delta': success

正常了!

把要做增量索引的命令寫了個指令碼,放在rc.local中,這樣重啟過機器就不會再出現這種問題了。

複製** **如下:

echo "start:" $(dwww.cppcns.comate +"%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")

本文標題: sphinx增量索引的乙個問題

本文位址:

sphinx增量索引和主索引來實現索引的實時更新

專案中文章的資訊內容因為持續有新增,而文章總量的基數又比較大,所以做搜尋的時候,用了主索引 增量索引這種方式來實現索引的實時更新。實現原理 1.新建一張表,記錄一下上一次已經建立好索引的最後一條記錄的id 2.當索引時,然後從資料庫中取出所有id大於上面那個sphinx中的那個id的資料,這些就是新...

sphinx增量索引和主索引來實現索引的實時更新

專案中文章的資訊內容因為持續有新增,而文章總量的基數又比較大,所以做搜尋的時候,用了主索引 增量索引這種方式來實現索引的實時更新。實現原理 1.新建一張表,記錄一下上一次已經建立好索引的最後一條記錄的id 2.當索引時,然後從資料庫中取出所有id大於上面那個sphinx中的那個id的資料,這些就是新...

sphinx增量索引和主索引來實現索引的實時更新

專案中文章的資訊內容因為持續有新增,而文章總量的基數又比較大,所以做搜尋的時候,用了主索引 增量索引這種方式來實現索引的實時更新。實現原理 1.新建一張表,記錄一下上一次已經建立好索引的最後一條記錄的id 2.當索引時,然後從資料庫中取出所有id大於上面那個sphinx中的那個id的資料,這些就是新...