private function groupedSearchableIdsAsKeys(array $hits)
{
$groupedIdsAsKeys = [];
foreach ($this->classUidList($hits) as $classUid) {
/** @var Model|Builder $model */
$model = $this->newInstanceBy($classUid);
$primaryKey = $model->getKeyName();
if (!method_exists($model, 'searchableIds')) {
// If not exists get full id list
$searchableIds = $model->newQuery()->lists($primaryKey);
} else {
$searchableIds = $model->{'searchableIds'}();
}
$searchableIds = \Illuminate\Support\Collection::make($searchableIds)->all();
// Set searchable id list for model's class
$groupedIdsAsKeys[get_class($model)] = $searchableIds ? array_flip($searchableIds) : [];
}
return $groupedIdsAsKeys;
}