SearcherResult example

protected function createResult(QueryBuilder $builder)
    {
        /** @var Query<array<string, mixed>> $query */
        $query = $builder->getQuery();
        $query->setHydrationMode(AbstractQuery::HYDRATE_ARRAY);
        $paginator = $this->entityManager->createPaginator($query);
        $result = iterator_to_array($paginator);

        $field = $this->getIdentifierField();
        $field = explode('.', $field);

        return new SearcherResult(
            array_column($result$field[1]),
            $paginator->count()
        );
    }

    /** * @return string */
    protected function getIdentifierField()
    {
        return 'entity.id';
    }
/** * @return SearcherResult */
    protected function iterate(array $result)
    {
        $hits = $result['hits']['hits'];

        $sources = array_column($hits, '_source');

        $ids = array_column($sources$this->getIdentifierColumn());

        return new SearcherResult($ids(int) $result['hits']['total']);
    }

    /** * @return string */
    protected function getIdentifierColumn()
    {
        return 'id';
    }

    /** * @return BuilderInterface */
Home | Imprint | This part of the site doesn't use cookies.