在sphinx搜索引擎中配置merge_block_size

时间:2008-11-17 20:53:16

标签: indexing sphinx

我正在使用Sphinx进行网络搜索,并在构建索引时收到以下错误消息:

  

警告:sort_hits:merge_block_size = 76 kb太低,增加mem_limit可能会提高性能

问题是我找不到有关此设置配置位置的任何文档。我对Sphinx设置有点精通,所以我只需要知道设置的配置位置。

2 个答案:

答案 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将运行三次:

     
      
  1. 将$ start替换为1,将$ end替换为1000;
  2.   
  3. 将$ start替换为1001,将$ end替换为2000;
  4.   
  5. 将$ start替换为2000,将$ end替换为2345。
  6.         

    显然,对于2000行表来说,这并没有什么区别,但是   当涉及索引1000万行MyISAM表时,远程查询   可能会有所帮助。

         

    http://sphinxsearch.com/docs/current.html#ranged-queries

希望它适合你。