Search Sphinx搜索在没有索引时崩溃

Search Sphinx搜索在没有索引时崩溃,search,sphinx,Search,Sphinx,我想启动sphinx searchd,但目前还没有填充索引。我有一个单独的cron作业,它从数据源提取数据,然后调用索引器生成索引 因此,searchd第一次启动cron作业时还没有运行,因此没有索引。搜索失败,出现如下错误: 致命:没有可用的索引 有没有办法绕过这个问题?e、 g.即使在没有索引的情况下启动earchd,并且如果有人在此期间对其进行搜索,它也不会返回docid。稍后当cron作业运行时,将填充索引,然后搜索并查询这些索引 如果有人在这段时间内搜索它,它只会返回没有docid的文

我想启动sphinx searchd,但目前还没有填充索引。我有一个单独的cron作业,它从数据源提取数据,然后调用索引器生成索引

因此,searchd第一次启动cron作业时还没有运行,因此没有索引。搜索失败,出现如下错误:

致命:没有可用的索引

有没有办法绕过这个问题?e、 g.即使在没有索引的情况下启动earchd,并且如果有人在此期间对其进行搜索,它也不会返回docid。稍后当cron作业运行时,将填充索引,然后搜索并查询这些索引

如果有人在这段时间内搜索它,它只会返回没有docid的文件

这将需要一个实际的索引来重新搜索

只需创建一个空索引。然后,当indexer运行时,它会重新创建索引(这次使用数据),并使用--rotate开关通知searchd

@ctx提供的生成“空”索引的方法示例:(2014年12月增补)

/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\u query=SELECT 1',
的方法,但这确实需要连接到真正的数据库服务器

如果有人在这段时间内搜索它,它只会返回没有docid的文件

这将需要一个实际的索引来重新搜索

只需创建一个空索引。然后,当indexer运行时,它会重新创建索引(这次使用数据),并使用--rotate开关通知searchd

@ctx提供的生成“空”索引的方法示例:(2014年12月增补)

/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\u query=SELECT 1',
的方法,但这确实需要连接到真正的数据库服务器

与创建普通索引的方法相同,只是使用没有数据的数据源;这个答案在没有数据的情况下是无用的。与创建普通索引的方法相同,只是使用了一个没有数据的数据源。添加了一个实际的配置;这个答案没有必要。