【问题标题】:Laravel: Elasticsearch\Common\Exceptions\NoNodesAvailableExceptionLaravel:Elasticsearch\Common\Exceptions\NoNodesAvailableException
【发布时间】:2019-07-15 07:16:38
【问题描述】:

我正在尝试在 Laravel 应用程序中运行 Elasticsearch。 我在本地主机上运行http://127.0.0.1:8000

我的 elasticsearch 已成功启动,所有安装均已成功完成..尽管仍然出现错误:

No alive nodes found in your cluster

在 .env 文件中:

ELASTICSEARCH_HOST=localhost
ELASTICSEARCH_PORT=9200
ELASTICSEARCH_SCHEME=http
ELASTICSEARCH_CORE_SUFFIX=dev2

我的 app.php 的一部分:

'providers' => [

/*
 * Laravel Framework Service Providers...
 */
Illuminate\Auth\AuthServiceProvider::class,
Illuminate\Broadcasting\BroadcastServiceProvider::class,
Illuminate\Bus\BusServiceProvider::class,
Illuminate\Cache\CacheServiceProvider::class,
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
Illuminate\Cookie\CookieServiceProvider::class,
Illuminate\Database\DatabaseServiceProvider::class,
Illuminate\Encryption\EncryptionServiceProvider::class,
Illuminate\Filesystem\FilesystemServiceProvider::class,
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
Illuminate\Hashing\HashServiceProvider::class,
Illuminate\Mail\MailServiceProvider::class,
Illuminate\Notifications\NotificationServiceProvider::class,
Illuminate\Pagination\PaginationServiceProvider::class,
Illuminate\Pipeline\PipelineServiceProvider::class,
Illuminate\Queue\QueueServiceProvider::class,
Illuminate\Redis\RedisServiceProvider::class,
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
Illuminate\Session\SessionServiceProvider::class,
Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,
/*
 * Package Service Providers...
 */
Collective\Html\HtmlServiceProvider::class,

/*
 * Application Service Providers...
 */
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
// App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,

Mews\Captcha\CaptchaServiceProvider::class,
Barryvdh\Debugbar\ServiceProvider::class,

],
'aliases' => [

    'App' => Illuminate\Support\Facades\App::class,
    'Artisan' => Illuminate\Support\Facades\Artisan::class,
    'Auth' => Illuminate\Support\Facades\Auth::class,
    'Blade' => Illuminate\Support\Facades\Blade::class,
    'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
    'Bus' => Illuminate\Support\Facades\Bus::class,
    'Cache' => Illuminate\Support\Facades\Cache::class,
    'Config' => Illuminate\Support\Facades\Config::class,
    'Cookie' => Illuminate\Support\Facades\Cookie::class,
    'Crypt' => Illuminate\Support\Facades\Crypt::class,
    'DB' => Illuminate\Support\Facades\DB::class,
    'Eloquent' => Illuminate\Database\Eloquent\Model::class,
    'Event' => Illuminate\Support\Facades\Event::class,
    'File' => Illuminate\Support\Facades\File::class,
    'Gate' => Illuminate\Support\Facades\Gate::class,
    'Hash' => Illuminate\Support\Facades\Hash::class,
    'Lang' => Illuminate\Support\Facades\Lang::class,
    'Log' => Illuminate\Support\Facades\Log::class,
    'Mail' => Illuminate\Support\Facades\Mail::class,
    'Notification' => Illuminate\Support\Facades\Notification::class,
    'Password' => Illuminate\Support\Facades\Password::class,
    'Queue' => Illuminate\Support\Facades\Queue::class,
    'Redirect' => Illuminate\Support\Facades\Redirect::class,
    'Redis' => Illuminate\Support\Facades\Redis::class,
    'Request' => Illuminate\Support\Facades\Request::class,
    'Response' => Illuminate\Support\Facades\Response::class,
    'Route' => Illuminate\Support\Facades\Route::class,
    'Schema' => Illuminate\Support\Facades\Schema::class,
    'Session' => Illuminate\Support\Facades\Session::class,
    'Storage' => Illuminate\Support\Facades\Storage::class,
    'URL' => Illuminate\Support\Facades\URL::class,
    'Validator' => Illuminate\Support\Facades\Validator::class,
    'View' => Illuminate\Support\Facades\View::class,
    'Captcha' => Mews\Captcha\Facades\Captcha::class,
    'Debugbar' => Barryvdh\Debugbar\Facade::class,
],

cmd 命令:`curl -X GET http://localhost:9200/ 给出以下内容:

{
  "name" : "aNRDi3G",
  "cluster_name" : "elasticsearch_stevengerrits",
  "cluster_uuid" : "VPxXtDDDAa7rJ71dW3rwA",
  "version" : {
    "number" : "6.6.0",
    "build_flavor" : "oss",
    "build_type" : "tar",
    "build_hash" : "a9861f4",
    "build_date" : "2019-01-24T11:27:09.439740Z",
    "build_snapshot" : false,
    "lucene_version" : "7.6.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
` 

cmd命令:

curl -XGET 'localhost:9200/_cluster/health?pretty'

{
  "cluster_name" : "elasticsearch_stevengerrits",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

已安装的应用程序:

"require": {
        "php": ">=7.1.19",
        "cviebrock/laravel-elasticsearch": "^2",
        "fideloper/proxy": "~3.3",
        "guzzlehttp/guzzle": "^6.3",
        "intervention/image": "^2.4",
        "laravel/framework": "5.5.*",
        "laravel/tinker": "~1.0",
        "laravelcollective/html": "^5.5",
        "mews/captcha": "^2.1",
        "spatie/calendar-links": "^1.0",
        "webpatser/laravel-countries": "dev-master#33767373"
    },

当我运行brew services restart elasticsearch

我明白了:

 Successfully started `elasticsearch` (label: homebrew.mxcl.elasticsearch)

【问题讨论】:

  • 检查this线程是否有帮助..
  • 这是什么版本的 Laravel?
  • 你好,5.5版
  • repo 说 如果您使用的是 ElasticSearch 版本 5,则安装此软件包的版本 2: 您使用的是版本 2,但您的 ES 版本是 6.6。尝试升级
  • 我明白了,奇怪.. 我安装了 5.5 版,但.. 需要降级。它需要与合作伙伴使用的应用程序兼容

标签: laravel elasticsearch


【解决方案1】:

您是否在 .env 中定义了弹性节点/主机?这也在运行吗?

curl -X GET http://localhost:9200/ 

【讨论】:

  • 命令返回:{“name”:“aNYBe3G”,“cluster_name”:“elasticsearch_stefgeits”,“cluster_uuid”:“VPxXtPDDDAa7rJ71dW3rwA”,“version”:{“number”:“6.6.0” ,“build_flavor”:“oss”,“build_type”:“tar”,“build_hash”:“a9861f4”,“build_date”:“2019-01-24T11:27:09.439740Z”,“build_snapshot”:false,“lucene_version” " : "7.6.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "标语" : "You Know, for Search" }
  • 我添加了有问题的 .env 主机 inf
  • 我没有在您的应用程序中看到提供程序,php ``` Cviebrock\LaravelElasticsearch\ServiceProvider::class 到您的提供程序列表和:'Elasticsearch' => Cviebrock\LaravelElasticsearch\Facade::class
【解决方案2】:

我通过终端运行 ES 解决了这个问题

【讨论】:

    猜你喜欢
    • 2018-07-09
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 2021-03-09
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多