我尝试将Laravel Scout与Algolia一起用作搜索引擎。
我这样使用它
MyModel::search('my query')->paginate()->pluck('id');
问题是,Algolia返回正确的顺序,比方说一些ID为3, 1, 2
的记录,但是当Laravel提取数据库中的记录时,ID就像1, 2, 3
(按ID排序)。
我使用Scout错了吗?
答案 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,似乎是一个正在调查的童军问题。