我正在运行 Sphinx 0.9.9-release (r2117)。
当我运行从 MySQL 表中读取数据的索引器时,出现以下错误:
indexing index 'main'...
ERROR: index 'main': ., 888.4 MB
total 3629180 docs, 888448551 bytes
total 170.437 sec, 5212749 bytes/sec, 21293.30 docs/sec
如您所见,索引器仅在 888.4 MB 处停止,没有真正的错误消息。即使我删除了完整的索引并尝试创建一个新索引,也会发生同样的情况。如果我这样做,新创建的索引文件是空的。
该系统现在工作了几个月,但表的行数从大约 1100 万增加到大约 2400 万。此外,它必须有非常大的 id 差距,因为最小 id 为 1,最大 id 大于 60 亿。我怀疑 MySQL 可能有问题,所以我创建了一个小脚本来执行所有“分页”查询,应该在索引期间由 Sphinx 执行:
SELECT ... FROM ... WHERE id >= $start AND id <= $end
该脚本执行所有对 alle id 范围的查询,而不返回错误。
一些可能相关的 Sphinx 配置细节:
sql_query_range = SELECT MIN(id), MAX(id) FROM offer
sql_range_step = 10240
SELECT o.id, ....
FROM offer o \
LEFT JOIN customer c ON c.id = o.customer_id \
WHERE ... AND o.id >= $start AND o.id <= $end AND o.last_update <= (SELECT last_full_index FROM index_update WHERE name = 'default')
有什么方法可以增加索引器的详细程度吗?
有什么想法可以缩小问题的范围吗?