没有索引时狮身人面像搜索崩溃
问题描述:
我想要一个狮身人面像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