fix(search): fix general elasticsearch (#1148)

This commit is contained in:
Kyrch
2026-04-01 09:49:35 -03:00
committed by GitHub
parent 7d949e8947
commit 3ec851fc23
2 changed files with 10 additions and 3 deletions
+8 -1
View File
@@ -68,7 +68,7 @@ class Elasticsearch extends Search
*/
protected bool $alive;
public function __construct(ClientBuilderInterface $builder, SearchCriteria $criteria)
public function __construct(ClientBuilderInterface $builder, SearchCriteria $criteria, protected ?Model $model = null)
{
parent::__construct($criteria);
@@ -168,8 +168,15 @@ class Elasticsearch extends Search
*/
public function search(?Closure $callback = null, int $perPage = 15, int $page = 1, array $sorts = []): LengthAwarePaginator
{
throw_unless($this->model instanceof Model, RuntimeException::class, 'Model must be provided for search.');
$searchBuilder = static::elasticQuery($this->model::class)->build($this->criteria);
$this->elasticBuilder = $searchBuilder;
// Resolve callback.
if ($callback instanceof Closure) {
$this->elasticBuilder->refineModels($callback);
}
// Resolve sorting.
$sortRaw = [];
+1 -1
View File
@@ -33,7 +33,7 @@ abstract class Search
return match ($driver = Config::get('scout.driver')) {
'collection' => App::make(CollectionSearch::class, ['model' => $model, 'criteria' => $criteria]),
'elastic' => App::make(Elasticsearch::class, ['criteria' => $criteria]),
'elastic' => App::make(Elasticsearch::class, ['model' => $model, 'criteria' => $criteria]),
'typesense' => App::make(Typesense::class, ['model' => $model, 'criteria' => $criteria]),
default => throw new RuntimeException("Unsupported {$driver} search driver configured."),
};