我正在使用 Scout和Algolia 来创建我的搜索引擎并使用有限且免费的社区计划。
我想知道是否有一种方法可以使用WHERE LIKE
切换到普通口才,如果 Scout或Algolia 订阅中出现问题?
答案 0 :(得分:1)
是的,您可以使用普通查询在laravel中搜索结果。
ModelName::query()
->where('name', 'LIKE', "%{$searchTerm}%")
->orWhere('email', 'LIKE', "%{$searchTerm}%")
->get();
或者只需构建一个宏即可在laravel中搜索
https://freek.dev/1182-searching-models-using-a-where-like-query-in-laravel
答案 1 :(得分:1)
您可以使用后备装饰器装饰Algolia引擎,并在发生错误时切换到后备装饰。
class AppServiceProvider extends ServiceProvider
{
/**
* {@inheritdoc}
*/
public function boot(): void
{
resolve(EngineManager::class)->extend(AppSearchEngine::class, function () {
$origin = new AlgoliaEngine();
$fallback = new MySQLEngine();
return new FallbackEngine($origin, $fallback);
});
}
}
class FallbackEngine extends Engine {
...
public function search(Builder $builder)
{
try {
return $this->origin->search();
} ($e \Excheption) {
return $this->fallback->search();
}
}
...
}