2010-06-22 2 views
1

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

ответ

4

Neutrino почти правильно ...

Во-первых, стоит отметить, что сфинкс (и так, мышление 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 ts:rebuild 

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

+0

Спасибо, я получил его, используя per_page с частью поиска. –

0

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

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

Смотрите docs для получения дополнительной информации ,

+0

Я пробовал, но результат с теми же 20 записями –

+0

вы запустили 'rake ts: config' после этого? –

+0

Я попытался еще не получить результат –

0

Я пробовал все вещи для получения более 20 результатов.

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

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

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

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

1

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

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

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