как отобразить больше записей при поиске с Thinking_sphinx с рельсами - PullRequest
1 голос
/ 22 июня 2010

Я обновил свои записи в полях поиска с помощью think_sphinx gem и настроил его. Он работает нормально, но проблема в том, что он отображает только 20 записей по умолчанию. Как изменить эту вещь, чтобы сделать больше записей видимыми ..

Ответы [ 4 ]

4 голосов
/ 22 июня 2010

Нейтрино почти правильно ...

Во-первых, стоит отметить, что Sphinx (и так далее, Thinking Sphinx) всегда разбивает на страницы запросы, а размер страницы по умолчанию равен 20. Если вы хотите изменить это, вы можете передать :per_page => 30 или аналогичный, чтобы получить желаемое количество записей на странице.

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

Во-вторых, Sphinx (по умолчанию) ограничивает общее количество доступных результатов поиска до 1000по умолчанию.Это то, на что указывал Нейтрино - если вы установите max_matches, вы можете увеличить это значение.Тем не менее, также необходимо будет указать значение для :max_matches также в поисковом вызове.

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

Вам нужно будет остановить / переиндексировать / перезапустить при изменениизначений в вашем файле config/sphinx.yml - есть одна задача rake, которая делает это:

rake ts:rebuild

Это обеспечит актуальность сгенерированного файла конфигурации, а демон Sphinx будет в курсе изменений..

1 голос
/ 04 марта 2013

В контроллере

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

Это сработало для меня.

0 голосов
/ 01 июля 2011

Я перепробовал все, чтобы получить более 20 результатов.

В конфигурационном файле я установил max_matches на 1000,

Тогда он также дал мне только 20 результатов.

Затем я попытался: per_page => 200, и затем я получил большее количество результатов.

Спасибо за помощь.

0 голосов
/ 22 июня 2010

В вашем config/sphinx.yml (создайте его, если у вас его еще нет) добавьте следующее:

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

См. документы для дополнительной информации.

...