我正在使用 Sphinx 进行网络搜索,并在构建索引时收到以下错误消息:
警告:sort_hits:merge_block_size=76 kb 太低,增加 mem_limit 可能会提高性能
问题是我找不到有关配置此设置的位置的任何文档。我对 Sphinx 设置有点精通,所以我只需要知道设置的配置位置。
这可能是因为您试图一次索引太多项目。确保您使用的是范围查询。如果您已经在使用范围查询,那么mem_limit
按照它的建议增加 可能会有所帮助。这merge_block_size
是基于mem_limit
和文件的数量。
如果您对它如何生成该数字感到好奇,请查看源代码。它是免费提供的。
在 sphinx.conf 中:
sql_query_range = SELECT MIN(id),MAX(id) FROM documents sql_range_step = 1000 sql_query = SELECT * FROM documents WHERE id>=$start AND id<=$end
如果表包含从 1 到 2345 的文档 ID,则 sql_query 将运行 3 次:
- $start 替换为 1,$end 替换为 1000;
- $start 替换为 1001,$end 替换为 2000;
- $start 替换为 2000,$end 替换为 2345。
显然,这对于 2000 行的表来说差别不大,但是在索引 1000 万行的 MyISAM 表时,范围查询可能会有所帮助。
希望对你有效。