没有索引时狮身人面像搜索崩溃

问题描述:

我想要一个狮身人面像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,''的东西,但这确实需要连接到真实的数据库服务器。

+0

谢谢...你将如何创建一个空索引? – user2202809 2013-03-23 20:48:38

+0

与创建普通索引的方式相同,仅使用没有数据的数据源。 – barryhunter 2013-03-23 20:53:20

+0

添加了一个实际的配置;这个答案没有用。 – chx 2013-12-28 04:32:53