我想要一個獅身人面像searchd啓動,但目前還沒有索引填充。我有一個單獨的cron作業,從數據源中提取數據,然後調用索引器來生成索引。沒有索引時獅身人面像搜索崩潰
因此,第一次searchd啓動時,cron作業尚未運行,因此沒有索引。和searchd的失敗,像錯誤:
FATAL:沒有有效的索引服務
有什麼辦法來解決這個問題?例如即使在沒有索引的情況下也開始搜索,如果有人在那段時間內對它進行搜索,它只會返回沒有docid。稍後當cron作業運行時,索引將被填充,然後搜索可以查詢這些索引。
我想要一個獅身人面像searchd啓動,但目前還沒有索引填充。我有一個單獨的cron作業,從數據源中提取數據,然後調用索引器來生成索引。沒有索引時獅身人面像搜索崩潰
因此,第一次searchd啓動時,cron作業尚未運行,因此沒有索引。和searchd的失敗,像錯誤:
FATAL:沒有有效的索引服務
有什麼辦法來解決這個問題?例如即使在沒有索引的情況下也開始搜索,如果有人在那段時間內對它進行搜索,它只會返回沒有docid。稍後當cron作業運行時,索引將被填充,然後搜索可以查詢這些索引。
如果有人在那段時間內反對它,它只是沒有返回docids。
這將需要一個實際的索引來搜索重新分配。
只需創建一個空索引。然後當索引器運行時,它會重新創建索引(這次是數據)並通知searchd - using --rotate開關。的方式,以產生一個 '空' 指數,
例如通過@ctx提供了:(新增十二月,2014)
source force { type = xmlpipe2 xmlpipe_command = cat /tmp/test.xml } index force { source = force path = /path/to/sphinx/datadir/filename charset_type=utf-8 }
/tmp/test.xml
:<?xml version="1.0" encoding="utf-8"?> <sphinx:docset> <sphinx:schema> <sphinx:field name="subject"/> </sphinx:schema> </sphinx:docset>
indexer force
和現在的searchd應該可以運行。
另外可以使用類似sql_query = SELECT 1,''
的東西,但這確實需要連接到真實的數據庫服務器。
謝謝...你將如何創建一個空索引? – user2202809 2013-03-23 20:48:38
與創建普通索引的方式相同,僅使用沒有數據的數據源。 – barryhunter 2013-03-23 20:53:20
添加了一個實際的配置;這個答案沒有用。 – chx 2013-12-28 04:32:53