@alex_maldinsky

Sphinx и Yii2, как правильно задавать limit?

Подскажите пожалуйста, есть следующий код:
public function search() {
    $this->load($this->searchParams);

    $query = new Query();

    $items = $query->from('news')
        ->match($this->query)
        ->orderBy(['date_added' => SORT_DESC])
        ->all();

    $items = array_column($items,'id');

    $query = News::find()
        ->where(['in', 'id', $items]);

    $dataProvider = new ActiveDataProvider([
        'query' => $query,
        'sort' => false,
        'pagination' => [
            'pageSize' => 15
        ]
    ]);

    return $dataProvider;
}

  1. Правильно ли я работаю с sphinx? Я передаю ему запрос поиска, получаю массив id и делаю по ним выборку.
  2. Как работать с limit у sphinx? Возвращает только 20 записей... Получать текущую страницу и считать исходя из количества элементов на странице?
  3. Или со sphinx мне надо получать не только id? а полный обьем данных и передавать их в DataProvider?

Заранее спасибо.
  • Вопрос задан
  • 251 просмотр
Пригласить эксперта
Ответы на вопрос 2
@alex_maldinsky Автор вопроса
Дело в том, что во view я работаю с объектом news и использую его методы, как быть?
Ответ написан
Комментировать
@hector
php программист
У sphinx2 есть параметр OPTION max_matches , его надо увеличить до нужного результата, к примеру 1000 поставить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы