FosElasticaBundle заполнить сериализатором не индексировать все поля - PullRequest
0 голосов
/ 12 ноября 2018

Я работаю с пакетом FOS Elastica и пытаюсь проиндексировать некоторые данные в Elasticsearch.

Я последовал за документом, поэтому написал этот конф

fos_elastica:
    clients:
        default: { host: '%env(ELASTICSEARCH_HOST)%', port: '%env(ELASTICSEARCH_PORT)%' }
    indexes:
        app:
            index_name: app
            types:
                user:
                    serializer:
                        groups: [elastica]
                    persistence:
                        driver: orm
                        model: AppBundle\Entity\User
                        provider: ~
                country:
                    serializer:
                        groups: [elastica]
                    persistence:
                        driver: orm
                        model: AppBundle\Entity\Country
                        provider: ~

Затем внутри своих сущностей я добавил группу сериализации

use Symfony\Component\Serializer\Annotation\Groups;
...

/**
 * @ORM\Table
 * @ORM\Entity
 */
class Country
{
    ...

    /**
     * @var string
     *
     * @Groups({"elastica"})
     *
     * @ORM\Column(type="string", length=64, unique=true)
     * @Assert\NotBlank
     * @Assert\Length(max=64)
     */
    private $name = '';
}

Затем, когда я запускаю fos:elastica:populate, все работает хорошо, но все поля, в которые я помещаю группу сериализации elastica, не индексируются.

Я использую сериализатор Symfony и следил за официальными документами, но я не понимаю и не вижу, почему мои поля не индексируются.

Я пытался добавить

serializer:
    serializer: serializer

или

serializer: ~

Но я получаю ошибку

Неправильная строка действия / метаданных [3], ожидаемая START_OBJECT, но найденная [VALUE_STRING]

Когда я пытаюсь без сериализатора, все работает хорошо, и все определенные поля индексируются.

Кто-нибудь знал, как исправить эту ошибку? Все проблемы, которые я обнаружил в репозитории FosElastica GitHub, связаны с JMSSerializer.

...