Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Elasticsearch PHP client throwing exception "No alive nodes found in your cluster"

I am trying to do a scan and scroll operation on an index as shown in the example :

$client = ClientBuilder::create()->setHosts([MYESHOST])->build(); $params = [     "search_type" => "scan",    // use search_type=scan     "scroll" => "30s",          // how long between scroll requests. should be small!     "size" => 50,               // how many results *per shard* you want back     "index" => "my_index",     "body" => [         "query" => [             "match_all" => []         ]     ] ];  $docs = $client->search($params);   // Execute the search $scroll_id = $docs['_scroll_id'];   // The response will contain no results, just a _scroll_id  // Now we loop until the scroll "cursors" are exhausted while (\true) {      // Execute a Scroll request     $response = $client->scroll([             "scroll_id" => $scroll_id,  //...using our previously obtained _scroll_id             "scroll" => "30s"           // and the same timeout window         ]     );      // Check to see if we got any search hits from the scroll     if (count($response['hits']['hits']) > 0) {         // If yes, Do Work Here          // Get new scroll_id         // Must always refresh your _scroll_id!  It can change sometimes         $scroll_id = $response['_scroll_id'];     } else {         // No results, scroll cursor is empty.  You've exported all the data         break;     } } 

The first $client->search($params) API call executes fine and I am able to get back the scroll id. But $client->scroll() API fails and I am getting the exception : "Elasticsearch\Common\Exceptions\NoNodesAvailableException No alive nodes found in your cluster"

I am using Elasticsearch 1.7.1 and PHP 5.6.11

Please help

like image 820
ajaybc Avatar asked Sep 15 '15 09:09

ajaybc


1 Answers

I found the php driver for elasticsearch is riddled with issues, the solution I had was to just implement the RESTful API with curl via php, Everything worked much quicker and debugging was much easier

like image 151
R. lori Avatar answered Sep 23 '22 15:09

R. lori