fos elasticabundle mapping type“array”

时间:2014-06-20 14:15:35

标签: arrays symfony doctrine-orm yaml elastica

我在列#34;标签"中有一个教义数组。在表格/实体"类别"。

FOS ElasticaBundle正常运行,现在我想添加"标签"列搜索。

我找不到任何关于如何设置它的资源。这是我尝试过的,也是我想做的。

  search:
        client: default
        types:
            category:
                mappings:
                    displayName: ~
                    searchRef: ~
                    tags:
                        type: 'array'
                persistence:
                    driver: orm
                    model: SC\ProviderBundle\Entity\Category
                    provider: ~
                    listener: ~
                    finder: ~

我还有其他三种类型使用映射类型"嵌套"比运行好。预期的阵列没有钥匙,所以我不知道要为物业放下什么。

我收到此错误

[Elastica\Exception\ResponseException]
 MapperParsingException[mapping [category]]; nested: MapperParsingException[No handler for type [array] declared on field [tags]];

如何设置我的映射类型"标记"使用FOSElasticaBundle作为Symfony2中的数组,在任何文档中都是这样的?

2 个答案:

答案 0 :(得分:3)

答案是

type:
    category:
        mappings:
            tags:
                type: 'string'

如此处所述

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-array-type.html

(工作链接,但是如果它是同一页面的idk,有人可以自由编辑并改进这个答案) https://www.elastic.co/guide/en/elasticsearch/reference/1.4/mapping-array-type.html

答案 1 :(得分:2)

我自己也遇到了同样的问题。 对于最新版本的elasticsearch(v4),类型必须是' text':

type:
    category:
        mappings:
            tags:
                type: 'text'