如果侦察兵和阿尔戈利亚阻止,Laravel会改用雄辩的搜索方式

我正在使用 Scout和Algolia 来创建我的搜索引擎并使用有限且免费的社区计划。

我想知道是否有一种方法可以使用WHERE LIKE切换到普通口才,如果 Scout或Algolia 订阅中出现问题?

wnykdc 回答:如果侦察兵和阿尔戈利亚阻止,Laravel会改用雄辩的搜索方式

是的,您可以使用普通查询在laravel中搜索结果。

ModelName::query()
   ->where('name','LIKE',"%{$searchTerm}%") 
   ->orWhere('email',"%{$searchTerm}%") 
   ->get();

或者只需构建一个宏即可在laravel中搜索

https://freek.dev/1182-searching-models-using-a-where-like-query-in-laravel

,

您可以使用后备装饰器装饰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();
        }
    }
...
}
本文链接:https://www.f2er.com/3070154.html

大家都在问