【发布时间】:2018-05-04 16:14:11
【问题描述】:
我使用他们的 Docker 映像安装了 ElasticSearch 6,一切正常。
然后我按照文档中的说明安装并配置了 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: ~
我的用户实体模型将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]
我尝试在 fos_elastica 配置中使用 properties.type 配置设置字段类型,但没有成功。
我尝试了另一个实体,但我得到了同样的错误。
我已经在大约 1 年前与 FOSElasticaBundle 合作过同一个项目,并且人口正在工作......
如果有 JMSSerializer/FOSElastica 错误或配置错误,我没有成功找到问题所在
我是否遗漏了配置中的某些内容?你已经有这个问题了吗?
【问题讨论】:
-
兄弟有什么解决办法吗?
-
这个错误是由于 JSON_PRETTY_PRINT 造成的,并且与 symfony 序列化程序完全相同。删除它,它应该可以工作
-
Grezat 解决了,谢谢你 ^^
标签: php symfony elasticsearch serialization