Symfony 具有多个数据源的Api平台,如何使用条令或ElasticSearch映射实体

Symfony 具有多个数据源的Api平台,如何使用条令或ElasticSearch映射实体,symfony,api-platform.com,Symfony,Api Platform.com,Api平台:v2.5.6,Symfony:v4.4.11 我正在构建一个包含多个数据源的API。现在,一个来自Postgres,另一个来自ElasticSearch 例如,我有一个来自postgres的Organization实体和一个来自ElasticSearch的Stats实体 如果无法访问ElasticSearch服务,我希望/organizations路线正常,因为他们不需要ElasticSearch来工作 现在我得到了“在集群中找不到活动节点”,因为它试图与ElasticSearch的

Api平台:v2.5.6,Symfony:v4.4.11

我正在构建一个包含多个数据源的API。现在,一个来自Postgres,另一个来自ElasticSearch

例如,我有一个来自
postgres
Organization
实体和一个来自ElasticSearch的
Stats
实体

如果无法访问ElasticSearch服务,我希望
/organizations
路线正常,因为他们不需要ElasticSearch来工作

现在我得到了
“在集群中找不到活动节点”
,因为它试图与ElasticSearch的
“/\u cat/index/organization”
路径通信

这让我陷入了一个问题,如果它每次都试图与ElasticSearch和Postgres进行沟通,无论实体是什么

例如,我可以说一个实体映射到一个数据源而不是另一个数据源吗

或者至少设定一个优先级

我的
app/config/packages/api_platform.yaml

api_platform:
    allow_plain_identifiers: true
    title: HeyAPI Documentation
    version: 2.0.0
    formats:
        jsonld: ['application/ld+json']
        json: ['application/json']
        graphql: ['application/graphql'] #https://graphql.org/learn/serving-over-http/#post-request

    mapping:
        paths:
            - '%kernel.project_dir%/config/api_platform'

    patch_formats:
        json: ['application/merge-patch+json']

    elasticsearch:
        hosts: ['%env(ELASTICSEARCH_URL)%']

    swagger:
        versions: [3]
        api_keys:
            Bearer:
                name: Authorization
                type: header

你能分享你的api/config/packages/api_platform.yaml吗?我看这个链接:也许我错了,但是这个链接:你可以只包含弹性搜索的实体。@GaryHoubre不幸的是,这不是定义字段的映射方式。如果我只把实体放在这里(而不是放在
mapping.path
),它就不会被ApiPlatform使用。如果我把两者都放进去,我的行为与所描述的一样。@BastienSander你找到了让条令实体和ES一起工作的解决方案了吗?它工作得很好,但我找不到一种方法来区分哪个是优先权。在这里您可以找到一些帮助: