Scout Laravel Algolia search too 查询
Posted
技术标签:
【中文标题】Scout Laravel Algolia search too 查询【英文标题】:Scout Laravel Algolia search too queries 【发布时间】:2022-01-14 06:17:11 【问题描述】:我正在使用 Laravel scout 和 Algolia 搜索。
我有这种雄辩的关系:
public function doctors()
return $this->belongsTo(Doctor::class, 'doctor_id');
在这里我通过 Algolia 搜索得到结果:
$doctors = DoctorInfo::search($this->search)
->with([
'typoTolerance' => true,
])
->paginate(10);
我收到很多单个查询:
select * from `doctors` where `doctors`.`id` = 131 limit 1
select * from `doctors` where `doctors`.`id` = 141 limit 1
select * from `doctors` where `doctors`.`id` = 191 limit 1
....
我怎样才能使用“whereIn”而不是“where”来获得一个有说服力的关系?
谢谢大家!
【问题讨论】:
【参考方案1】:这样解决了。
$doctors = DoctorInfo::search($this->search)
->with([
'typoTolerance' => true,
])
->query(function ($builder)
$builder->with('doctors');
)
->paginate(10);
我的查询现在是独一无二的:
select * from `doctors` where `doctors`.`id` in (12, 88, 107, 108, 111, 131, 168, 170, 175, 181)
谢谢大家。
【讨论】:
以上是关于Scout Laravel Algolia search too 查询的主要内容,如果未能解决你的问题,请参考以下文章
laravel 的 scout elasticsearch ik laravel-scout-elastic 之间的关系与安装
Laravel scout elastic-scout-driver 返回空响应