Я работаю с пакетом 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.