Я пытаюсь использовать Laravel Scout с Algolia в качестве поисковой системы.
Я использую это так
MyModel::search('my query')->paginate()->pluck('id');
Проблема в том, что Algolia возвращает правильный порядок, скажем, некоторые записи с идентификаторами 3, 1, 2, но когда Laravel извлекает записи в базе данных, идентификаторы похожи на 1, 2, 3 (упорядочены по идентификатору).
Я неправильно использую Scout?






Вам нужно отредактировать файл поставщика в своем проекте laravel:
vendor/laravel/scout/src/Searchable.php
и отредактируйте оператор возврата функции getScoutModelsByIds () в:
$ids_ordered = implode(',', $ids);
return $query->whereIn(
$this->getScoutKeyName(), $ids
)->orderByRaw(DB::raw("FIELD(id, $ids_ordered)"))->get();
Привет и спасибо за ответ. Я считаю, что предлагать правку в каталоге поставщиков - это очень неправильно. Пожалуйста, перепишите свой ответ или удалите его, чтобы не запутать новичков. Еще раз спасибо