【问题标题】:Symfony Elasticsearch configuration file is not working with 1 index for multiple typesSymfony Elasticsearch 配置文件不适用于多种类型的 1 个索引
【发布时间】:2019-09-04 07:45:27
【问题描述】:

我的 config.yml

中有以下配置
fos_elastica:
    clients:
        default: { host: localhost, port: 9200 }
    indexes:      
        app:
            finder: ~            
            types:
                product:
                    properties:
                        name: ~
                        sku: ~
                    persistence:
                        driver: orm
                        model: AppBundle\Entity\Product
                        provider: ~
                        finder: ~
                stock:
                    properties:
                        sku: ~
                        stock: ~
                    persistence:
                        driver: orm
                        model: AppBundle\Entity\ProductStock
                        provider: ~
                        finder: ~

错误

拒绝对 [app] 的映射更新,因为最终映射将包含更多 超过 1 种类型:[库存、产品]

如果我查看文档,我会在 Github 页面上看到以下内容 documentation

我做错了什么?

【问题讨论】:

    标签: php symfony elasticsearch foselasticabundle


    【解决方案1】:

    这不是 Symfony 集成的错误。原因是 Elasticsearch 在 6.0 中取消了对每个索引 introduced 的多种类型的支持。您需要更新索引定义,使每个索引只有一种类型的数据。

    【讨论】:

    • 谢谢您的回答,所以我需要为每个人创建一个唯一索引?但是,如果有多个索引而不仅仅是 1,我该如何组合它们呢?
    • 是的,您需要为每种类型的数据创建单独的索引。可以使用通配符访问多个索引,请参考documentation
    • 以及如何将这两个索引的结果加入 1 个结果中。目前他们分别给出两个结果。
    • Join 在 Elasticsearch 中并不是一件自然而然的事情,将 Elasticsearch 与关系数据库一样对待是错误的。 Elasticsearch 支持join datatype,但它非常具体,与 RDBMS 中的连接没有直接关系
    • 最好的方法是什么?库存与产品相关,但不是同一张表。我应该如何对待他们?你能给我建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多