Enable Discovery debug logging for production troubleshooting

- Add DISCOVERY_LOG_LEVEL=debug
- Add DISCOVERY_SHOW_PROGRESS=true
- Temporary changes for debugging InitializerProcessor fixes on production
This commit is contained in:
2025-08-11 20:13:26 +02:00
parent 59fd3dd3b1
commit 55a330b223
3683 changed files with 2956207 additions and 16948 deletions

View File

@@ -0,0 +1,162 @@
<?php
declare(strict_types=1);
namespace App\Framework\Search;
/**
* Represents a search query with all parameters
*/
final readonly class SearchQuery
{
/**
* @param array<string, SearchFilter> $filters
* @param array<string, float> $boosts
* @param array<string> $fields
* @param array<string> $highlightFields
*/
public function __construct(
public string $entityType,
public string $query,
public array $filters = [],
public array $boosts = [],
public array $fields = [],
public array $highlightFields = [],
public int $limit = 20,
public int $offset = 0,
public SearchSortBy $sortBy = new SearchSortBy(),
public bool $enableHighlighting = true,
public bool $enableFuzzyMatching = false,
public float $minScore = 0.0
) {
}
public function hasFilters(): bool
{
return ! empty($this->filters);
}
public function hasBoosts(): bool
{
return ! empty($this->boosts);
}
public function hasFieldRestriction(): bool
{
return ! empty($this->fields);
}
public function withLimit(int $limit): self
{
return new self(
$this->entityType,
$this->query,
$this->filters,
$this->boosts,
$this->fields,
$this->highlightFields,
$limit,
$this->offset,
$this->sortBy,
$this->enableHighlighting,
$this->enableFuzzyMatching,
$this->minScore
);
}
public function withOffset(int $offset): self
{
return new self(
$this->entityType,
$this->query,
$this->filters,
$this->boosts,
$this->fields,
$this->highlightFields,
$this->limit,
$offset,
$this->sortBy,
$this->enableHighlighting,
$this->enableFuzzyMatching,
$this->minScore
);
}
public function withFilter(string $field, SearchFilter $filter): self
{
$filters = $this->filters;
$filters[$field] = $filter;
return new self(
$this->entityType,
$this->query,
$filters,
$this->boosts,
$this->fields,
$this->highlightFields,
$this->limit,
$this->offset,
$this->sortBy,
$this->enableHighlighting,
$this->enableFuzzyMatching,
$this->minScore
);
}
public function withBoost(string $field, float $boost): self
{
$boosts = $this->boosts;
$boosts[$field] = $boost;
return new self(
$this->entityType,
$this->query,
$this->filters,
$boosts,
$this->fields,
$this->highlightFields,
$this->limit,
$this->offset,
$this->sortBy,
$this->enableHighlighting,
$this->enableFuzzyMatching,
$this->minScore
);
}
public function withSortBy(SearchSortBy $sortBy): self
{
return new self(
$this->entityType,
$this->query,
$this->filters,
$this->boosts,
$this->fields,
$this->highlightFields,
$this->limit,
$this->offset,
$sortBy,
$this->enableHighlighting,
$this->enableFuzzyMatching,
$this->minScore
);
}
public function toArray(): array
{
return [
'entity_type' => $this->entityType,
'query' => $this->query,
'filters' => array_map(fn ($filter) => $filter->toArray(), $this->filters),
'boosts' => $this->boosts,
'fields' => $this->fields,
'highlight_fields' => $this->highlightFields,
'limit' => $this->limit,
'offset' => $this->offset,
'sort_by' => $this->sortBy->toArray(),
'enable_highlighting' => $this->enableHighlighting,
'enable_fuzzy_matching' => $this->enableFuzzyMatching,
'min_score' => $this->minScore,
];
}
}