mirror of
https://github.com/AnimeThemes/animethemes-server.git
synced 2026-07-11 01:24:46 +02:00
fix(search): fix general elasticsearch (#1148)
This commit is contained in:
@@ -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.
|
||||
$this->elasticBuilder->refineModels($callback);
|
||||
if ($callback instanceof Closure) {
|
||||
$this->elasticBuilder->refineModels($callback);
|
||||
}
|
||||
|
||||
// Resolve sorting.
|
||||
$sortRaw = [];
|
||||
|
||||
@@ -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."),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user