5

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

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

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

4

2 回答 2

5

这可能是因为您试图一次索引太多项目。确保您使用的是范围查询。如果您已经在使用范围查询,那么mem_limit按照它的建议增加 可能会有所帮助。这merge_block_size是基于mem_limit和文件的数量。

如果您对它如何生成该数字感到好奇,请查看源代码。它是免费提供的。

于 2008-12-31T18:30:01.383 回答
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 将运行 3 次:

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

显然,这对于 2000 行的表来说差别不大,但是在索引 1000 万行的 MyISAM 表时,范围查询可能会有所帮助。

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

希望对你有效。

于 2011-04-01T15:14:52.950 回答