| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | 
							- <?php
 
- namespace App\Search\Traits;
 
- use App\Search\Builders\ElasticsearchBuilder;
 
- use Closure;
 
- use Laravel\Scout\Builder;
 
- use Laravel\Scout\Searchable;
 
- trait ElasticsearchSearchable
 
- {
 
-     use Searchable;
 
-     /**
 
-      * Get the index name for the model.
 
-      *
 
-      * @return string
 
-      */
 
-     public function searchableAs()
 
-     {
 
-         return config('scout.elasticsearch_index_prefix').$this->search_index;
 
-     }
 
-     /**
 
-      * Perform a search against the model's indexed data.
 
-      *
 
-      * @param  string  $query
 
-      * @param  Closure  $callback
 
-      * @return ElasticsearchBuilder
 
-      */
 
-     public static function search($query = '', $callback = null)
 
-     {
 
-         return app(ElasticsearchBuilder::class, [
 
-             'model' => new static,
 
-             'query' => $query,
 
-             'callback' => $callback,
 
-             'softDelete'=> config('scout.soft_delete', false)
 
-         ]);
 
-     }
 
-     /**
 
-      * Get the requested models from an array of object IDs;
 
-      *
 
-      * @param  \Laravel\Scout\Builder  $builder
 
-      * @param  array  $ids
 
-      * @return mixed
 
-      */
 
-     public function getScoutModelsByIds(Builder $builder, array $ids)
 
-     {
 
-         $query = $this->newQuery();
 
-         if ($builder->queryCallback) {
 
-             call_user_func($builder->queryCallback, $query);
 
-         }
 
-         return $query->whereIn($this->getScoutKeyName(), $ids)->get();
 
-     }
 
- }
 
 
  |