Laravel Scout не уважает приказ Алголии - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь использовать Laravel Scout с Algolia в качестве своей поисковой системы.

Я использую это так

MyModel::search('my query')->paginate()->pluck('id');

Проблема в том, что Algolia возвращает правильный порядок, скажем, некоторые записи с идентификаторами3, 1, 2 но когда Laravel выбирает записи в базе данных, идентификаторы имеют вид 1, 2, 3 (упорядоченный по идентификатору).

Я неправильно использую Scout?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Относительно проблемы # 341 в хранилище разведчиков, похоже, что исследуется проблема разведчика.

РЕДАКТИРОВАТЬ

Теперь проблема исправлена # 369 (версия> 7.0)

0 голосов
/ 07 февраля 2019

Вам необходимо отредактировать файл вендора в вашем проекте 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();
...