Laravel 的搜索系统 Scout报错[AlgoliaSearch\AlgoliaConnectionException]

导入数据到Algolia

php artisan scout:import "App\Student"

报错

  [AlgoliaSearch\AlgoliaConnectionException]                                          
  Hosts unreachable: Resolving timed out after 1000 milliseconds,Resolving timed out  
   after 1000 milliseconds,Resolving timed out after 3000 milliseconds,Resolving tim  
  ed out after 3000 milliseconds   
阅读 2.2k
1 个回答

这是由于默认algoliasearch-client配置的连接超时时间为1秒,由于网络速度的原因,我们可以把连接时间修改一下 创建app/Services/Scout/EngineManager.php文件如下

<?php
namespace App\Services\Scout;

use AlgoliaSearch\Client as Algolia;
use AlgoliaSearch\Version as AlgoliaUserAgent;
use Laravel\Scout\EngineManager as BaseEngineManager;
use Laravel\Scout\Engines\AlgoliaEngine;

/**
 *
 */
class EngineManager extends BaseEngineManager
{
    public function createAlgoliaDriver()
    {
        AlgoliaUserAgent::addSuffixUserAgentSegment('Laravel Scout', '3.0.7');

        $algolia = new Algolia(
            config('scout.algolia.id'), config('scout.algolia.secret')
        );
        // 设置连接超时时间
        $algolia->setConnectTimeout(30, 30, 30);
        return new AlgoliaEngine($algolia);
    }
}

打开app/Providers/AppServiceProvider.php,在boot()中加入以下代码

    public function boot()
    {
        // …… 省略之前代码
        $this->app->singleton(\Laravel\Scout\EngineManager::class, function ($app) {
            return new \App\Services\Scout\EngineManager($app);
        });
    }

请参考 https://www.tech1024.cn/origi...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题