Laravel Scout不尊重Algolia的命令

时间:2018-12-18 15:53:57

标签: laravel algolia laravel-scout

我尝试将Laravel Scout与Algolia一起用作搜索引擎。

我这样使用它

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

问题是,Algolia返回正确的顺序,比方说一些ID为3, 1, 2的记录,但是当Laravel提取数据库中的记录时,ID就像1, 2, 3(按ID排序)。

我使用Scout错了吗?

2 个答案:

答案 0 :(得分:0)

您必须在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();

答案 1 :(得分:0)

关于童军储存库中的问题341,似乎是一个正在调查的童军问题。

https://github.com/laravel/scout/issues/341