1

検索フィールドのレコードを thinking_sphinx gem で更新し、構成しました。正常に動作していますが、問題は、デフォルトである 20 レコードしか表示されないことです。それらを変更して、より多くのレコードをビューに表示する方法..

4

4 に答える 4

4

ニュートリノはほぼ正しいです...

まず、Sphinx(およびThinking Sphinx)は常にリクエストをページ分割し、デフォルトのページサイズは20であることに注意してください。これを変更する場合は、パス:per_page => 30または同様のものを使用して、ページあたりのレコード数を取得できます。あなたが欲しいです。

Model.search 'foo', :per_page => 42

次に、Sphinx(デフォルト)では、使用可能な検索結果の総数がデフォルトで1000に制限されています。これがNeutrinoが指摘していたことです。max_matchesを設定すると、その値を増やすことができます。ただし、検索呼び出しでもを指定する必要があります。:max_matches

Model.search 'foo', :max_matches => 10_000

ファイルの値を変更するときは、停止/再インデックス/再起動する必要があります。config/sphinx.ymlこれを行う単一のrakeタスクがあります。

rake ts:rebuild

これにより、生成された構成ファイルが最新であり、Sphinxデーモンが変更を認識していることが保証されます。

于 2010-06-22T13:48:31.010 に答える
1

コントローラ内

@sphinx = Ad.search(params[:search], :per_page => 1000)

それは私のために働いた。

于 2013-03-04T08:00:29.243 に答える
0

20以上の結果を取得するためにすべてを試しました。

設定ファイルでmax_matchesを1000に設定しました。

それからまたそれは私にたった20の結果を与えていました。

次に、:per_page => 200を試してみたところ、より多くの結果が得られました。

手伝ってくれてありがとう。

于 2011-07-01T09:06:55.553 に答える
0

あなたのconfig/sphinx.yml(まだ持っていない場合は作成してください)に、次を追加します。

development:
  max_matches: 10000
# ... repeat for other environments

詳細については、ドキュメントを参照してください。

于 2010-06-22T11:55:39.633 に答える