制限が指定されていない場合、Solarium (および solr) はデフォルトで 10 件の結果を返します。$query->setRows(25); を使用して制限を指定できることは知っています。しかし、すべての結果を返す必要があります (どんなに大きくても)。setRows() に任意に大きな数を渡さずにこれを指定する方法はありますか? ドキュメントには何も表示されません.......
2 に答える
これは啓発的なものであり、実際にはウィキがこの質問に答えています. ドキュメントに従って行を取得するには、大きな数を使用する方がよい場合があります。
ここから
一致するすべてのドキュメントを取得するにはどうすればよいですか? ...どうすれば無制限の行数を返すことができますか?
これは、ほとんどの場合、実用的ではありません。人々は通常、処理可能な量で実行可能に送信できるように結果セットが常に十分に小さいことを保証するサイズのインデックスを扱っていることを知っている場合にのみこれを行いたいと考えていますが、その場合は考慮すべきことを指定してください行パラメーターとして「管理可能な量」を取得し、両方の世界を最大限に活用します(仮定が正しい場合はすべての結果、仮定が間違っていることが判明した場合は結果サイズのサニティキャップ)
さらに、これはsetRowsのドキュメントがここで言及しているものです
このパラメーターは、クエリの結果をページ分割するために使用されます。リクエストごとに完全な結果セットからクライアントに返されるドキュメントの最大数を指定します。ページに表示される結果の最大数と見なすことができます。
デフォルト値は「10」で、パラメータが指定されていない場合に使用されます。クエリから可能なすべての結果を上限なしで返すように Solr に指示する場合は、rows を 10000000 に指定するか、予想される可能性のある行数よりも大きいその他の非常に大きな値を指定します。
ここでこれについての素晴らしい議論があります
これをサポート フォーラムに投稿したところ、開発者は PreFetchIterator プラグインの使用を提案しました。