我正在使用Sphinx进行网络搜索,并在构建索引时收到以下错误消息:
警告:sort_hits:merge_block_size = 76 kb太低,增加mem_limit可能会提高性能
问题是我找不到有关此设置配置位置的任何文档。我对Sphinx设置有点精通,所以我只需要知道设置的配置位置。
答案 0 :(得分:5)
这可能是因为您尝试一次索引太多项目。确保您使用的是ranged queries。如果您已经在使用远程查询,那么根据建议增加mem_limit
可能会有所帮助。 merge_block_size
基于mem_limit
和文档数量。
如果您对如何生成该数字感到好奇,请查看来源。它是免费提供的。
答案 1 :(得分:3)
在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将运行三次:
- 将$ start替换为1,将$ end替换为1000;
- 将$ start替换为1001,将$ end替换为2000;
- 将$ start替换为2000,将$ end替换为2345。
醇>显然,对于2000行表来说,这并没有什么区别,但是 当涉及索引1000万行MyISAM表时,远程查询 可能会有所帮助。
希望它适合你。