Sphinx を使用して Web 検索を実行していますが、インデックスの作成中に次のエラー メッセージが表示されます。
警告: 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 行のテーブルではそれほど違いはありませんが、1,000 万行の MyISAM テーブルのインデックス作成に関しては、範囲指定クエリが役立つ場合があります。
それがうまくいくことを願っています。