Example #1
0
 /**
  * @test
  */
 public function it_should_update_aliases()
 {
     /**
      *
      * Set
      *
      * @var \Mockery\Mock $index
      * @var \Mockery\Mock $proxy
      * @var \Mockery\Mock $client
      */
     list($index, $proxy, $client) = $this->getMocks();
     // Mock the self::$client variable
     am::double('Iverberk\\Larasearch\\Index', ['self::$client' => $client]);
     /**
      *
      * Expectation
      *
      */
     $client->shouldReceive('indices->updateAliases')->with(['body' => ['actions' => []]]);
     /**
      *
      * Assertion
      *
      */
     Index::updateAliases(['actions' => []]);
 }
Example #2
0
 /**
  * @param bool     $relations
  * @param int      $batchSize
  * @param array    $mapping
  * @param callable $callback
  * @internal param bool $force
  * @internal param array $params
  */
 public function reindex($relations = false, $batchSize = 750, $mapping = [], callable $callback = null)
 {
     $model = $this->config['model'];
     $name = $this->config['index']->getName();
     $newName = $name . '_' . date("YmdHis");
     $relations = $relations ? Config::get('larasearch::paths.' . get_class($model)) : [];
     Index::clean($name);
     $index = App::make('iverberk.larasearch.index', array('name' => $newName, 'proxy' => $this));
     $index->create($mapping);
     if ($index->aliasExists($name)) {
         $index->import($model, $relations, $batchSize, $callback);
         $remove = [];
         foreach (Index::getAlias($name) as $index => $aliases) {
             $remove = ['remove' => ['index' => $index, 'alias' => $name]];
         }
         $add = ['add' => ['index' => $newName, 'alias' => $name]];
         $actions[] = array_merge($remove, $add);
         Index::updateAliases(['actions' => $actions]);
         Index::clean($name);
     } else {
         if ($this->config['index']->exists()) {
             $this->config['index']->delete();
         }
         $actions[] = ['add' => ['index' => $newName, 'alias' => $name]];
         Index::updateAliases(['actions' => $actions]);
         $index->import($model, $relations, $batchSize, $callback);
     }
     Index::refresh($name);
 }