File manager - Edit - /var/www/payraty/helpdesk/vendor/meilisearch/meilisearch-php/src/Search/SearchResult.php
Back
<?php declare(strict_types=1); namespace Meilisearch\Search; class SearchResult implements \Countable, \IteratorAggregate { /** * @var array<int, array<string, mixed>> */ private array $hits; /** * `estimatedTotalHits` is the attributes returned by the Meilisearch server * and its value will not be modified by the methods in this class. * Please, use `hitsCount` if you want to know the real size of the `hits` array at any time. */ private ?int $estimatedTotalHits; private ?int $hitsCount; private ?int $offset; private ?int $limit; private ?int $semanticHitCount; private ?int $hitsPerPage; private ?int $page; private ?int $totalPages; private ?int $totalHits; private int $processingTimeMs; private bool $numberedPagination; private string $query; /** * @var array<string, mixed> */ private array $facetDistribution; /** * @var array<string, mixed> */ private array $facetStats; /** * @var array<string, mixed> */ private array $raw; public function __construct(array $body) { if (isset($body['estimatedTotalHits'])) { $this->numberedPagination = false; $this->offset = $body['offset']; $this->limit = $body['limit']; $this->estimatedTotalHits = $body['estimatedTotalHits']; $this->hitsCount = \count($body['hits']); } else { $this->numberedPagination = true; $this->hitsPerPage = $body['hitsPerPage']; $this->page = $body['page']; $this->totalPages = $body['totalPages']; $this->totalHits = $body['totalHits']; $this->hitsCount = $body['totalHits']; } $this->semanticHitCount = $body['semanticHitCount'] ?? 0; $this->hits = $body['hits'] ?? []; $this->processingTimeMs = $body['processingTimeMs']; $this->query = $body['query']; $this->facetDistribution = $body['facetDistribution'] ?? []; $this->facetStats = $body['facetStats'] ?? []; $this->raw = $body; } /** * Return a new {@see SearchResult} instance. * * The $options parameter is an array, and the following keys are accepted: * - transformFacetDistribution (callable) * - transformHits (callable) * * The method does NOT trigger a new search. */ public function applyOptions($options): self { if (\array_key_exists('transformHits', $options) && \is_callable($options['transformHits'])) { $this->transformHits($options['transformHits']); } if (\array_key_exists('transformFacetDistribution', $options) && \is_callable($options['transformFacetDistribution'])) { $this->transformFacetDistribution($options['transformFacetDistribution']); } return $this; } public function transformHits(callable $callback): self { $this->hits = $callback($this->hits); $this->hitsCount = \count($this->hits); return $this; } public function transformFacetDistribution(callable $callback): self { $this->facetDistribution = $callback($this->facetDistribution); return $this; } public function getHit(int $key, $default = null) { return $this->hits[$key] ?? $default; } /** * @return array<int, array> */ public function getHits(): array { return $this->hits; } public function getOffset(): int { return $this->offset; } public function getLimit(): int { return $this->limit; } public function getHitsCount(): int { return $this->hitsCount; } /** * @return non-negative-int */ public function getSemanticHitCount(): int { return $this->semanticHitCount; } public function count(): int { return $this->hitsCount; } public function getEstimatedTotalHits(): int { return $this->estimatedTotalHits; } public function getProcessingTimeMs(): int { return $this->processingTimeMs; } public function getQuery(): string { return $this->query; } public function getHitsPerPage(): ?int { return $this->hitsPerPage; } public function getPage(): ?int { return $this->page; } public function getTotalPages(): ?int { return $this->totalPages; } public function getTotalHits(): ?int { return $this->totalHits; } /** * @return array<string, mixed> */ public function getFacetDistribution(): array { return $this->facetDistribution; } /** * @return array<string, mixed> */ public function getFacetStats(): array { return $this->facetStats; } /** * Return the original search result. * * @return array<string, mixed> */ public function getRaw(): array { return $this->raw; } public function toArray(): array { $arr = [ 'hits' => $this->hits, 'hitsCount' => $this->hitsCount, 'processingTimeMs' => $this->processingTimeMs, 'query' => $this->query, 'facetDistribution' => $this->facetDistribution, ]; if (!$this->numberedPagination) { $arr = array_merge($arr, [ 'offset' => $this->offset, 'limit' => $this->limit, 'estimatedTotalHits' => $this->estimatedTotalHits, ]); } else { $arr = array_merge($arr, [ 'hitsPerPage' => $this->hitsPerPage, 'page' => $this->page, 'totalPages' => $this->totalPages, 'totalHits' => $this->totalHits, ]); } return $arr; } public function toJSON(): string { return json_encode($this->toArray(), JSON_PRETTY_PRINT); } public function getIterator(): \ArrayIterator { return new \ArrayIterator($this->hits); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings