Я установил ElasticSearch 6 с их образом Docker, и все работает хорошо.
Затем я установил и настроил FOSElastica, как сказал док.
Это следующий конфиг fos_elastica
fos_elastica:
clients:
default: { host: '%env(ELASTICSEARCH_HOST)%', port: '%env(ELASTICSEARCH_PORT)%' }
serializer:
serializer: jms_serializer
indexes:
app:
client: default
types:
user:
serializer:
groups: [elastica]
persistence:
driver: orm
model: AppBundle\Entity\User
provider: ~
listener: ~
finder: ~
И модель моей сущности User для предоставления группы сериализатора elastica
некоторому полю
AppBundle\Entity\User:
exclusion_policy: ALL
properties:
firstname:
expose: true
groups: [elastica, list, details]
lastname:
expose: true
groups: [elastica, list, details]
locale:
expose: true
groups: [elastica, details]
Сериализатор работает хорошо для моего API и хорошо настроен
jms_serializer:
metadata:
auto_detection: true
directories:
AppBundle:
namespace_prefix: 'AppBundle'
path: '%kernel.project_dir%/config/serializer'
Когда я пытаюсь заполнить ElasticSearch, который я получаю, я думаю, что ошибка сериализации
In Http.php line 181:
[Elastica\Exception\ResponseException]
Malformed action/metadata line [3], expected START_OBJECT but found [VALUE_STRING]
Я попытался установить тип поля, используя properties.type
config в конфигурации fos_elastica, но безуспешно.
Я пытался с другим объектом, и я получаю ту же ошибку.
Я уже работал с FOSElasticaBundle ~ 1 год назад над тем же проектом, и население работало ...
Мне не удалось найти проблему, если есть ошибка JMSSerializer / FOSElastica или неверная конфигурация
Я что-то упустил в конфигурации? У вас уже была эта проблема?